算法题主要有两大难点:

  • 一是「实现」,即算法本身的难度
  • 二是「思路」,即你能否想到使用这个算法来解决题目


数据范围的隐含信息

如何确定一道题合适的时间复杂度?最简单、快捷的方式就是通过观察题目中的数据范围来确定。

算法题答题技巧概述 - 图1

算法时间复杂度总结

通过数据范围得到时间复杂度后,我们需要对照下图筛选出适合的算法进行求解: 算法题答题技巧概述 - 图2此处有两点需要注意:

上图仅列出了时间复杂度较为固定的常见算法,而类似于动态规划、贪心、暴力等时间复杂度百变多样的算法并未列出。
O(logn)O(logn) 的算法通常与 O(n)O(n) 的算法组合在一起,用于实现 O(nlogn)O(nlogn) 要求的题目。