常用分析方法:
1.调整法:
首先是分析要求的结果是和什么量有关的,然后从每个变量的最值进行调整。
2.简化条件看看规律
3.考虑最后的状态并思考充分条件。(反证法)
4.观察题目的单调性.
5.分类讨论:一般贪心我们都是反证法,但是有时候分类讨论是管用的。
6.猜想很重要,因为在验证猜想的过程中我们能发现一些新东西能指明方向。
常用技巧:
反悔操作
差分:这个技巧主要是用于将问题进行转化。
后向操作:这个一般用于动态规划,本质上和差分差不多把要求的表达式写出来,然后变型然后我们每步只求一个差值。
如果正向考虑不行就反向考虑。
leetcode397
分类讨论贪心。或者是dp.
leetcode435
这题求max那么我们可以考虑min.还有就是如果要求和某个区间不相交的区间数也可以反向考虑。考虑要求区间的左边有多少个区间的右端点,考虑要求区间的右边有多少个区间的左端点。然后用总数减去就可以了。
leetcode316
此题我先开始用调整法,发现最后结果和字母的类型以及所处位置相关所以我们考虑先统计每个字母的位置然后从小到大,从右到左放字母。最后发现做法很复杂且不一定做出来。
不过发现最后的状态是如果s[i+1]<s[i]那么应该考虑把s[i]放后面除非后面没有和s[i]一样的字母了,所以考虑用栈。
leetcode11
首先考虑最后的状态很明显确定最大值的最左边的那块板的左边一定不会有比它还高的板子了
最右边板子的右边同理。然后分析出需要考虑的点集合就是一个山型最大值在中间。
从最左和最右开始就好了。这题本质上就是用了个反证法
leetcode517
猜想很重要还有就是要会分类