网站:https://www.programmercarl.com/
数组
- 二分查找 Easy
- 35.搜索插入位置 Easy
- 34.在排序数组中查找元素的第一个和最后一个位置 Medium
- 69.x 的平方根 Easy
- 367.有效的完全平方数 Easy
- 移除元素 Easy
- 26.删除排序数组中的重复项 Easy
- 283.移动零 Easy
- 844.比较含退格的字符串 Easy
977.有序数组的平方 Easy
209.长度最小的子数组 Medium (小米考过,反思一下为什么隔了几个月就写不出来)
59.螺旋矩阵II Medium
- 54.螺旋矩阵 Medium
- LCR 146. 螺旋遍历二维数组 Easy
单调栈
739.每日温度 Medium
496.下一个更大元素I Easy
503.下一个更大元素II Medium
42.接雨水 Hard (双指针简单,单调栈不会)
84.柱状图中最大的矩形 Hard (难,两个哨兵)
动态规划
背包的规律: (以后再想想二维怎么被一维代替的)
01 背包,外层是物品,内层是容量从大到小
完全背包:
组合,外层物品,内层从小到大;
排列,外层容量从小到大,内层物品
贪心
回溯
还剩 332.重新安排行程 Hard TODO 不会(邻接表???)
37.解数独 Hard TODO 不会
图论
797.所有可能的路径 Medium
200.岛屿数量 Medium
695.岛屿的最大面积 Medium
1020.飞地的数量 Medium
130.被围绕的区域 Medium
417.太平洋大西洋水流问题 Medium
827.最大人工岛 Hard TODO (难题,不会)
127.单词接龙 Hard TODO (bfs难题 不会)
841.钥匙和房间 Medium
463.岛屿的周长 Easy
1971.寻找图中是否存在路径 Easy
684.冗余连接 Medium
685.冗余连接 II Hard TODO (难题,没看)
学有余力的话:
并查集 + 力扣咸鱼会员的并查集vip模块
二叉树
链表
203 移除链表元素 Easy
707 设计链表
24 两两交换链表中的节点
哈希表
242.有效的字母异位词 Easy
349 两个数组的交集 Easy
202 快乐数 Easy
1 两数之和 Easy
454 四数相加II
383 赎金信 Easy
字符串
541 反转字符串II Easy
右旋字符串(外部网站)
28 实现 strStr() Easy todo (KMP,遇到了再看吧)
459 重复的子字符串 Easy todo (KMP,遇到了再看吧)
双指针法
27 移除元素 Easy
344 反转字符串 Easy
替换数字 (外部网站)
151 翻转字符串里的单词 Medium
206 反转链表 Easy
19 删除链表的倒数第N个节点 Medium
160 相交链表 Easy
142 环形链表II
15 三数之和 Medium
18 四数之和
栈与队列
232.用栈实现队列 Easy(用两个栈,显然每次pop一个元素,两个栈就要重新排序,所以不是简单挪动元素就可以实现)
225.用队列实现栈 Easy(用单向的队列实现栈,只需要一个暂存队列和当前队列,就可以简单实现)
20.有效的括号 Easy
1047.删除字符串中的所有相邻重复项 Easy
150.逆波兰表达式求值 Medium
239.滑动窗口最大值 Hard (单调队列)
347.前K个高频元素 Medium todo(小顶堆=优先队列)