算法题主要有两大难点:
- 一是「实现」,即算法本身的难度
- 二是「思路」,即你能否想到使用这个算法来解决题目
数据范围的隐含信息
如何确定一道题合适的时间复杂度?最简单、快捷的方式就是通过观察题目中的数据范围来确定。
算法时间复杂度总结
通过数据范围得到时间复杂度后,我们需要对照下图筛选出适合的算法进行求解:
此处有两点需要注意:
上图仅列出了时间复杂度较为固定的常见算法,而类似于动态规划、贪心、暴力等时间复杂度百变多样的算法并未列出。
O(logn)O(logn) 的算法通常与 O(n)O(n) 的算法组合在一起,用于实现 O(nlogn)O(nlogn) 要求的题目。