尽量多解法
使用尽量多的算法解同一个题目,即使其中一个明显优于其他算法,这样做可以加深理解每种算法的优缺点。每一种算法都有其使用场景,因此切勿顾此失彼。
递归与迭代
最问题优先考虑动态规划
- 最大、最小、最优、最长、最短。
动态规划是一种解决问题的思想,将一个复杂问题转化成一个更简单问题迭代/递归多次来解决,且上一次的迭代递归可以被下一次利用,减少计算过程。
- 动态规划的设计过程:
- 找出dp[i]或者dp[i][j]。
- 找出dp转移方程
- 如
- 如
- 找出边界情况
- 如
排列组合
想到回溯算法
算法训练_字符串排列
- 如