数据结构与算法

数据结构和算法是一个程序员的基石,本仓库用于个人学习基本数据结构和算法。

题目指数:表征题目中设计技巧的程度, 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

层数最深叶子节点的和

中等

二叉树

最后更新于