本项目为 《剑指 offer》第二版的 JavaScript 实现,文件名为题号,在注释里会有题目的说明和大致的思路
- 所有看到长度为 n 的数组,数据在 0 - n-1 范围中,都应当考虑修改原数组,将原数组用作一个简易的 hashMap 的可能性
- 回溯法是暴力法的升级,非常适合于由多个步骤组成,每个步骤情况一致,上一步会影响下一步的时候
- 将一个整数减一后与原来的整数做位运算,可以干掉最右边的1.该思路可以解决很多问题
- 当存在以下几种特征的时候,就是使用动态规划的时候:
- 求某个问题的最优解
- 整体问题的最优解依赖于各子问题的最优解
- 子问题在求解过程中反复出现
- 基于第三点,应当自上向下考虑问题,自下而上求解问题
- 贪婪算法在每一步都是贪婪的选择,基于该选择可以得到最优解,不过这个需要证明
- 几乎所有的广度优先都可以使用队列来解决