「基础算法」
第1章 递推算法
博客链接
总结:
- 一般有具体的情境,可以通过直接的模拟转移过程来实现递推,T2,T4,T9
- 找到已知状态和所求状态的差别和联系,想办法将所求转化为已知进行转移,一般要用到分讨,T1,T3
- 根据题目将问题转化,增维,然后转化后进行递推,T8
第2章 贪心算法
博客链接
总结:
- 一般像题目说什么全部都要满足,然后求最小代价这类题目是贪心,T1,T2,T3,T5,T6 若是什么选择一部分,获得最大代价,那么大抵可以往dp,反悔贪心上考虑
- 还有一类题型,有很多权值,每一个权值都可以选择不同的代价,所以肯定是权值最小的选最大的代价更优,经典模型,哈夫曼树,汽车匹配加油站模型,T4
- 字典序很容易出贪心,可能每次取最大值的本质注定它是个贪心吧,T7
- 根据运算的性质选择贪心方式,比如T8,或越或越多,与越与越少,于是就能决定贪心选择的长度
- 经典套路,每个物品代价相同,影响不同,所以每次贪心选择影响最小的物品更优T9
第3章 二分算法
博客链接
总结:
- 典中典,最大值最小问题,T1
- 可以清晰的把数列分成一个具有单调性的问题,常见有奇偶,T2
- 答案为一个值,还有另外一个条件,求满足这个条件下值的最大(最小)值,因为条件不好搞,并且这个值具有单调性,只有满足条件和不满足条件这两种状态,于是就将求值问题转化为了给定值判断是否合法问题,T3,T4,T5,T6,T7,T8