1.一头一尾的
1.167. 两数之和 II - 输入有序数组 - 力扣(LeetCode)
这两道题本质都是”非递减的数组“,所以可以一头一尾。
2.可以用Hashset做的题
1. 219. 存在重复元素 II - 力扣(LeetCode)
2. LCR 057. 存在重复元素 III - 力扣(LeetCode)
3.滑动窗口:一般是解决字串问题的
LCR 167. 招式拆解 I - 力扣(LeetCode)
LCR 014. 字符串的排列 - 力扣(LeetCode)
LCR 015. 找到字符串中所有字母异位词 - 力扣(LeetCode)
LCR 017. 最小覆盖子串 - 力扣(LeetCode)
这种题强烈推荐labuladong的模板!!!只需要变一下return的条件,大框架不变,轻轻松松
我写了首诗,把滑动窗口算法变成了默写题 | labuladong 的算法笔记
4.数组滑动窗口
长度最小的子数组 - 提交记录 - 力扣(LeetCode)
5.链表快慢指针
fast = fast.next.next;
slow = slow.next;
6.当你在写链表题时,有的题实在写不出来,就用一用容器吧,list,set什么的,虽然比较麻烦,但是包对
7.翻转的滑动窗口题
424. 替换后的最长重复字符 - 力扣(LeetCode)
1004. 最大连续1的个数 III - 力扣(LeetCode)
8.什么时候用前缀和
1.子数组/子序列
2.有负数(有负数无法用滑动窗口,因为不确定扩大后是否一定增大)
9.原地哈希
448. 找到所有数组中消失的数字 - 力扣(LeetCode)
用到TreeSet的滑动窗口
LCR 057. 存在重复元素 III - 力扣(LeetCode)
1438. 绝对差不超过限制的最长连续子数组 - 力扣(LeetCode)