- 算法思想
- 二分查找
- 贪心思想
- 2-pointer
- 滑动窗口
- 多数求和
- 排序
- 快速排序
- 堆排序
- 桶排序
- No.220 差不大于t,则桶的大小为t,和相邻的桶内元素比较即可
- 计数排序
- 搜索
- BFS
- No.102 层次遍历
- No.103 同No.102
- No.116 层次遍历
- No.117 同No.116
- No.127 按要求通过一系列转换从一个值变为另外一个值,可以将转换关系理解为图中的相连节点。
- No.130
- No.133 利用map存储新节点与对应源节点的映射,复制点与点之间的关系
- No.199
- No.200 计算有多少连通分量
- No.211
- No.222
- No.310 计算最长路径。从任一点a出发,找到离a最远的点b,再从b出发,找到离b最远的点c,搜索过程中记录下路径p。结果为p最中间的一个或两个点。
- No.331
- No.399 转换为图来做,先计算一个点到其他各个点的值,即分子相同,分母不同,在用除法计算出结果。
- No.417
- No.433
- No.449
- No.513
- No.515
- No.547
- No.623
- No.655
- No.662 使用数组存储完全二叉树中父节点与子节点的序号关系
- No.752
- No.787
- No.797
- No.808
- DFS
- Backtracking
- BFS
- 分治
- DP
- 图DP
- 最长递增子序列(子串)
- 最长公共子序列(子串)
- 最近公共祖先
- 0-1背包
- 完全背包
- 树形DP
- 字符串编辑
- 回文子序列(子串)
- 整数分割
- 字符串(数组)分割
- 状态机
- 线性DP
- No.343 DP[i]代表n = i时的结果
- No.368 DP[i]代表以nums[i]结尾的序列,
DP[i]=max([(*DP[j], nums[i]) for j in range(i-1, -1, -1) if nums[i]%nums[j]==0], key=lambda x: len(x), default=(nums,)))
- No.376 要做两次DP,波动方向有两种
- No.377
- No.397 用递归自顶向下比较快
- No.486 DP[i][j]表示一名玩家在先手情况能从nums[i:j+1]数组中取得最大分数
- No.740 先计数,在对每个值做DP
- No.790
DP[n]=DP[n-1]+DP[n-2]+2*(DP[n-3]+...+DP[0])=2*DP[n-1]+DP[n-3]
- No.801
DP[n]=(a,b) (a:如果此处不交换需要的次数,b:如果此处交换需要的次数)
- No.823
DP[n]=sum(DP[i]*DP[j]) (i in A and j in A and i*j==n)
- 其他
- No.152
- No.213
- No.221 DP数组中的DP[i][j]代表了以(i,j)为右下角的square的边长。所以当matrix[i][j]==1时,
DP[i][j]=min(DP[i-1][j],DP[i][j-1],DP[i-1][j-1])
,因为这三者中有一个为0时,matrix[i][j]并不能使某个square扩大。而这三者大于0,只能是其中最小值所在的square扩大。 - No.264 丑数
- No.279 满足条件的组合
- No.313 泛化丑数
- No.322
- No.375 DP[i][j]表示i...j的最优结果,有
DP[i][j]=min(k+max(DP[i][k-1],DP[k+1][j] for k in range(i,j+1))) if j>i else 0
- No.395 如果出现次数最少的字符出现次数大于k则字符串符合条件,否则递归地以该字符分割字符串去做判断
- No.542 二维矩阵DP,先从左上角向右下角做DP,再反向做一次
- No.576 同时朝各个方向做BFS,每次都刷新矩阵
- No.688 同No.576
- No.764
- No.799
- 数学
- 素数
- 多数投票
- No.229 典型投票问题
- 相遇问题
- 排列组合
- 其他
- No.29 用减法模拟除法,用快速幂的方式加快速度
- No.50 快速幂
- No.166 模拟手工除法计算
- No.319 开关灯问题
- No.365 泊松分酒
- No.372 快速幂
- No.390 每次删数只关注第一个数字的变化即可
- No.396 F(k) = 0 * Bk[0] + 1 * Bk[1] + ... + (n-1) * Bk[n-1],F(k+1) = Sum(Bk) - n * Bk[n-1]
- No.423 解方程
- No.462 把所有数字都变成中位数
- No.554 对每个wall做accumulate,统计出现频数
- No.640 模拟解方程
- No.670 总高位向地位遍历,如果某一位数字的低位有比它打的数,则这一位数字需要交互位置,要与低位中最大的且最低位的数字交换即可
- No.672 不太懂
- 其他算法
- 数据结构
- 字符串
- 链表
- 位操作
- 栈
- 队列
- 数组和矩阵
- 普通数组和矩阵操作
- No.6
- No.36 分别校验行,列和块
- No.48 先将每列逆置,然后沿对角线做对称
- No.54
- No.55
- No.56 按start排序
- No.59
- No.73
- No.74 从左下角或者右上角开始,类似于BST
- No.80
- No.82
- No.134 关键点在于如果车从i出发最远能到达j,那么从i到j出发都最远只能到达j,因为从i出发到达i+1至j中的任意一点时油量都>=0
- No.228
- No.238
- No.240 同No.74
- No.304 对每行做累和求差计算出范围的和
- No.307 累和求差计算出范围的和
- No.324
- No.334
- No.406 先按k排个序
- No.419 寻找每艘船唯一的特征点,如果一个点是1,且它的上方和左边都不是1,则这是一个特征点
- No.442 1. 将n放到nums[n-1],如果nums[n-1]已经等于n了,那n出现了两次。 2. 用nums[n-1]的正负记录n是否出现过。
- No.457
- No.481
- No.491
- No.498
- No.529
- No.807 每栋建筑的最大高度是它所在行最大值与所在列最大值中的较小者。
- 普通数组和矩阵操作
- 树
- 图
-
Notifications
You must be signed in to change notification settings - Fork 1
MadSkittles/leetcode
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published