1.看到有序-考虑二分法。二分法的时间复杂度是O(log(n));
2.矩阵的行和列都有序,考虑Z
3.原地修改、不能开新数组、空间尽量小 -
- 双指针
- 翻转 / 交换
- 常数变量遍历
4.最短、最长、连续子数组 / 子串- 考虑滑动窗口、双指针
5.元素范围小、重复、统计次数-哈希表 / 数组计数
6.螺旋、转圈、顺时针、层层遍历 -按层模拟 边界收缩
7.旋转矩阵、翻转图像- 上下翻转 + 对角线翻转 组合操作
8.组合、枚举、全部情况-暴力双层 / 多层循环
1.看到有序-考虑二分法。二分法的时间复杂度是O(log(n));
2.矩阵的行和列都有序,考虑Z
3.原地修改、不能开新数组、空间尽量小 -
4.最短、最长、连续子数组 / 子串- 考虑滑动窗口、双指针
5.元素范围小、重复、统计次数-哈希表 / 数组计数
6.螺旋、转圈、顺时针、层层遍历 -按层模拟 边界收缩
7.旋转矩阵、翻转图像- 上下翻转 + 对角线翻转 组合操作
8.组合、枚举、全部情况-暴力双层 / 多层循环