数据结构与算法
数据结构和算法是一个程序员的基石,本仓库用于个人学习基本数据结构和算法。
题目指数:表征题目中设计技巧的程度, 1 到 5 颗⭐️, ⭐️越多表示题目设计的越好,值得学习
时间复杂度
leetcode
1
两数之和
简单
数组
2
两数相加
中等
链表
哑结点
3
无重复字符的最长子串
中等
string
滑动窗口
4
寻找两个正序数字的中位数
困难
数组
类似双指针,记录当前值和前一个值
7
整数反转
数组
8
字符串转整型
string
9
Palindrome Number
11
盛最多水的容器
中等
数组
左右指针
14
最长公共前缀
15
三数之和
中等
数组
排序,左右指针
19
删除链表的倒数第N个结点
中等
链表
快慢指针
20
有效的括号
简单
string
21
合并两个有序链表
简单
链表
哑结点
23
合并K个排序链表
困难
链表
递归
24
两两交换链表中的节点
中等
链表
26
从排序数组中删除重复项
简单
数组
双指针,前后指针
27
移除元素
简单
数组
双指针,前后指针
34
在排序数组中查找元素的第一个和最后一个位置
中等
数组
双指针,左右指针
43
字符串相乘
中等
字符串
⭐️⭐️
细节题
45
跳跃游戏 II
46
全排列
数组
53
最大子数组和
中等
数组
⭐️⭐️⭐️
动态规划
54
螺旋矩阵
数组
55
跳跃游戏
58
最后一个单词的长度
简单
字符串
61
旋转链表
中等
链表
62
不同路径
中等
动态规划
64
最小路径和
中等
动态规划
66
加一
简单
数组
67
二进制求和
简单
字符串
细节题
70
爬楼梯
简单
动态规划
75
颜色分类
中等
数组
78
子集
数组
80
从排序数组中删除重复项II
数组
⭐️⭐️
快慢指针
82
从排序链表中移除重复元素 II
中等
链表
⭐️⭐️⭐️
哑结点,快慢指针
83
从排序链表中移除重复元素
简单
链表
86
分割链表
中等
链表
哑结点
88
合并两个有序数组
简单
数组
89
格雷编码
92
反转链表 II
链表
94
二叉树的中序遍历
简单
二叉树
栈
95
不同的二叉搜索树
中等
二叉树
96
不同的二叉搜索树
中等
二叉树
⭐️⭐️
动态规划
98
验证二叉搜索树
中等
二叉搜索树
⭐️⭐️
三种算法
99
恢复二叉树
中等
100
相同的树
简单
二叉树
101
对称二叉树
简单
二叉树
102
二叉树的层序遍历
中等
二叉树
⭐⭐️⭐️
BFS, DFS
104
二叉树的最大深度
简单
二叉树
⭐️⭐️
递归,层序遍历,dfs
105
从前序与中序遍历序列构造二叉树
中等
二叉树
106
从中序和后序遍历序列构造二叉树
中等
二叉树
107
二叉树的层序遍历2
中等
二叉树
110
平衡二叉树
简单
二叉树
111
二叉树的最小深度
简单
二叉树
112
路径总和
简单
二叉树
113
路径总和2
中等
二叉树
⭐️⭐️⭐️
DFS
118
杨辉三角
数组
121
买卖股票的最佳时机
简单
122
买卖股票的最佳时机 II
123
买卖股票
125
验证回文串
简单
字符串
双指针
129
求根节点到叶子节点数字之和
中等
二叉树
⭐️⭐️
DFS
141
环形链表
简单
链表
⭐️⭐️
快慢指针
142
环形链表2
中等
⭐️⭐️⭐️
快慢指针
143
重排链表
中等
链表
⭐️⭐️⭐️
144
二叉树的前序遍历
简单
二叉树
145
二叉树的后序遍历
简单
二叉树
⭐️⭐️
栈
147
对链表进行插入排序
中等
链表
149
直线上最多的点数
148
排序链表
链表
151
翻转字符串里的单词
155
最小栈
栈
156
上下翻转二叉树
中等
二叉树
160
两个链表的交点
简单
链表
167
两数之和II
简单
数组
189
旋转数组
中等
数组
⭐️⭐️
191
位1的个数
简单
数学
199
二叉树的右视图
中等
二叉树
层序遍历
203
移除链表元素
简单
链表
206
反转链表
简单
链表
209
长度最小的子数组
中等
数组
⭐️⭐️⭐️
215
数组中的第K个最大元素
数组
栈
219
存在重复元素II
简单
数组
220
存在重复元素III
困难
数组
⭐️⭐️⭐️
滑动窗口
231
2的幂
简单
234
回文链表
简单
链表
236
二叉树的最近公共祖先
中等
二叉树
239
滑动窗口最大值
困难
单调队列
246
中心对称数
257
二叉树的所有路径
简单
二叉树
DFS
264
丑数
270
最接近的二叉搜索树
简单
二叉树
零钱兑换
中等
动态规划
283
移动零
简单
数组
就地替换
292
Nim游戏
300
最长上升子序列
中等
动态规划
322
零钱兑换
中等
动态规划
328
奇偶链表
中等
链表
331
验证二叉树的前序序列化
中等
二叉树
⭐️⭐️⭐️
栈;出度,入度
338
比特位计数
344
反转字符串
简单
字符串
双指针
345
反转字符串中的元音字母
404
左叶子之和
简单
二叉树
415
字符串相加
简单
字符串
424
替换后的最长重复字符
中等
string
⭐️⭐️
滑动窗口
429
N叉树的层序遍历
中等
N叉树
447
回旋镖的数量
中等
数组
461
汉明距离
简单
数学
476
汉明距离
简单
480
滑动窗口中位数
困难
滑动窗口
⭐️⭐️⭐️⭐️
485
最大连续1的个数
简单
数组
前后指针
498
对角线遍历
数组
509
斐波那契数
简单
动态规划
538
把二叉树转换成累加树
简单
二叉树
521
最长特殊序列 I
543
二叉树的直径
简单
二叉树
545
二叉树的边界
中等
二叉树
563
二叉树的坡度
简单
二叉树
576
字符串的排列
589
N叉树的前序遍历
简单
N叉树
⭐️⭐️
迭代,栈
590
N叉树的后序遍历
简单
N叉树
⭐️⭐️
迭代,栈
594
最长和谐子序列
617
合并二叉树
简单
二叉树
621
任务调度器
622
设计循环队列
中等
637
二叉树的层平均值
中等
二叉树
641
设计循环双端队列
中等
654
最大二叉树
中等
二叉树
655
输出二叉树
中等
二叉树
662
二叉树的最大宽度
中等
二叉树
669
修剪二叉搜索树
简单
二叉搜索树
674
最长连续递增序列
简单
数组
695
岛屿的最大面积
广度优先搜索
703
数据流中第K大元素
简单
707
设计链表
链表
724
寻找数组的中心索引
简单
数组
747
至少是其他数字两倍的最大数
简单
数组
814
二叉树剪枝
中等
二叉树
820
单词的压缩编码
876
Middle of The Linked List
905
按奇偶排序数组
简单
数组
对撞指针
914
卡牌分组
977
有序数组的平方
简单
数组
对撞指针
933
Number of Recent Calls
941
有效的山型数组
简单
数组
987
二叉树的垂序遍历
困难
二叉树
⭐️⭐️⭐️
复杂的层序遍历
993
二叉树的堂兄弟节点
简单
二叉树
1089
重复零
简单
数组
1104
二叉树寻路
中等
二叉树
1161
最大层内元素和
中等
二叉树
层序遍历
1162
地图分析
1208
尽可能使字符串相等
中等
string
⭐️⭐️⭐️
滑动窗口
1295
找出具有偶数位数字的个数
简单
数组
1299
将每个元素替换为右侧最大元素
简单
数组
就地替换
1302
层数最深叶子节点的和
中等
二叉树
最后更新于