136. 只出现一次的数字
2 min2 min找出数组中仅出现一次的元素,其余元素均出现两次,要求线性时间与常量空间。
169. 多数元素
3 min3 min找出数组中出现次数超过一半的元素,假设数组非空且一定存在这样的元素。
75. 颜色分类
3 min3 min原地对只含0、1、2的数组进行排序,使0在前1在中2在后
31. 下一个排列
3 min3 min原地修改数组,找到其下一个字典序更大的排列,若不存在则重排为升序。
287. 寻找重复数
3 min3 min在包含 n+1 个 [1,n] 范围内整数的数组中,找出唯一的重复数字,要求不修改数组且使用 O(1) 空间。
72. 编辑距离
3 min3 min计算将 word1 转换为 word2 所需的最少编辑操作数(插入、删除、替换)。
1143. 最长公共子序列
3 min3 min求两个字符串的最长公共子序列长度,子序列不要求连续但需保持相对顺序。
5. 最长回文子串
4 min4 min寻找给定字符串中的最长回文子串。
64. 最小路径和
3 min3 min从左上角到右下角找一条路径,只能向下或向右,使得路径上数字之和最小。
62. 不同路径
3 min3 min计算从 m×n 网格左上角到右下角的唯一路径数量,每次只能向下或向右移动
32. 最长有效括号
3 min3 min找出只包含 '(' 和 ')' 的字符串中最长有效括号子串的长度
416. 分割等和子集
3 min3 min判断数组是否能分割成两个等和子集,等价于是否存在子集和等于总和的一半
152. 乘积最大子数组
3 min3 min找出整数数组中乘积最大的连续子数组,返回其乘积。
300. 最长递增子序列
3 min3 min求数组中最长严格递增子序列的长度
139. 单词拆分
2 min2 min判断字符串 s 是否能由字典 wordDict 中的单词(可重复使用)拼接而成
322. 零钱兑换
2 min2 min计算凑成总金额所需的最少硬币个数,若无法凑成则返回-1
279. 完全平方数
3 min3 min求和为给定整数 n 的完全平方数的最少数量
198. 打家劫舍
3 min3 min计算在不触发警报(不偷相邻房屋)的情况下,能偷到的最大金额。
118. 杨辉三角
3 min3 min生成杨辉三角的前 numRows 行,每个数是左上方和右上方两数之和。
70. 爬楼梯
3 min3 min计算每次爬1或2阶楼梯到达楼顶的不同方法总数
763. 划分字母区间
3 min3 min将字符串划分为最多片段,使得每个字母仅出现在一个片段中
45. 跳跃游戏 II
3 min3 min使用BFS求到达数组末尾的最小跳跃次数
55. 跳跃游戏
3 min3 min判断从数组起点出发,根据每个位置的跳跃长度,是否能够到达最后一个下标。
121. 买卖股票的最佳时机
3 min3 min给定股票价格数组,只能进行一次买卖,求最大利润。
295. 数据流的中位数
3 min3 min实现一个数据结构,支持动态添加整数并快速查询当前所有元素的中位数。
347. 前 K 个高频元素
3 min3 min返回数组中出现频率前 k 高的元素
215. 数组中的第K个最大元素
2 min2 min::leetcode{url="https://leetcode.cn/problems/kth-largest-element-in-an-array/submissions/703589610/?envType=study-plan-v...
84. 柱状图中最大的矩形
3 min3 min在柱状图中找出最大矩形面积,每个柱子宽度为1且相邻
739. 每日温度
3 min3 min给定温度数组,计算每一天之后出现更高温度所需等待的天数
394. 字符串解码
3 min3 min使用栈解码k[encoded_string]格式的嵌套字符串
155. 最小栈
3 min3 min设计一个支持常数时间获取最小值的栈
4. 寻找两个正序数组的中位数
5 min5 min找出两个正序数组的中位数,要求时间复杂度为 O(log(m+n))。
153. 寻找旋转排序数组中的最小值
3 min3 min在旋转排序数组中找出最小元素,要求时间复杂度为 O(log n)。
33. 搜索旋转排序数组
2 min2 min::leetcode{url="https://leetcode.cn/problems/search-in-rotated-sorted-array/description/?envType=study-plan-v2&envId=top...
34. 在排序数组中查找元素的第一个和最后一个位置
4 min4 min在已排序数组中找出目标元素的起始和结束位置,要求 O(log n) 时间复杂度
74. 搜索二维矩阵
3 min3 min在行列有序的二维矩阵中高效查找目标值
35. 搜索插入位置
3 min3 min在有序数组中查找目标值的插入位置,若存在返回索引,否则返回按顺序插入的位置。
51. N 皇后
4 min4 min在 n×n 棋盘上放置 n 个互不攻击的皇后,返回所有可行解。
131. 分割回文串
3 min3 min将字符串分割成所有可能的回文子串组合
79. 单词搜索
4 min4 min在二维字符网格中搜索是否存在按相邻单元格顺序组成的指定单词,禁止重复使用单元格。
22. 括号生成
3 min3 min生成 n 对括号的所有有效组合
39. 组合总和
3 min3 min找出所有和为 target 的组合,candidates 中数字可重复使用
17. 电话号码的字母组合
3 min3 min给定数字字符串,返回电话按键对应的所有字母组合。
78. 子集
3 min3 min给定无重复元素的整数数组,返回其所有可能的子集(幂集)。
46. 全排列
3 min3 min生成给定无重复数字数组的所有全排列组合。
208. 实现 Trie (前缀树)
4 min4 min实现支持插入、搜索和前缀查询的 Trie(前缀树)数据结构。
207. 课程表
4 min4 min判断课程依赖关系构成的有向图是否存在环,即是否可以完成所有课程。
994. 腐烂的橘子
4 min4 min计算腐烂橘子感染所有新鲜橘子的最少分钟数,若不可能则返回-1。
200. 岛屿数量
3 min3 min计算二维网格中由相邻'1'组成的岛屿数量
124. 二叉树中的最大路径和
3 min3 min求二叉树中任意路径的最大节点值之和,路径可不经过根节点且节点不重复。
236. 二叉树的最近公共祖先
3 min3 min在给定二叉树中找到两个指定节点的最近公共祖先节点
437. 路径总和 III
3 min3 min给定二叉树和目标和,统计所有向下路径中节点值之和等于目标和的路径数量。
105. 从前序与中序遍历序列构造二叉树
4 min4 min根据前序和中序遍历序列重建二叉树
114. 二叉树展开为链表
3 min3 min将二叉树原地展开为单链表,保持先序遍历顺序
199. 二叉树的右视图
3 min3 min返回二叉树从右侧视角看到的节点值序列
230. 二叉搜索树中第 K 小的元素
3 min3 min在 BST 中查找第 k 小的元素,利用中序遍历升序特性定位目标节点。
98. 验证二叉搜索树
3 min3 min判断给定的二叉树是否满足二叉搜索树的性质(左子树值<根<右子树值)
108. 将有序数组转换为二叉搜索树
3 min3 min将升序数组转换为高度平衡的二叉搜索树
102. 二叉树的层序遍历
3 min3 min对二叉树进行层序遍历,返回每层节点值组成的二维数组。
543. 二叉树的直径
3 min3 min求二叉树中任意两个节点间最长路径的长度(边数),该路径可能不经过根节点。
101. 对称二叉树
3 min3 min判断二叉树是否为轴对称结构
226. 翻转二叉树
3 min3 min翻转二叉树中所有节点的左右子节点。
104. 二叉树的最大深度
3 min3 min计算二叉树从根节点到最远叶子节点的最长路径上的节点数。
94. 二叉树的中序遍历
3 min3 min实现二叉树的中序遍历,返回节点值的列表。
146. LRU 缓存
4 min4 min实现一个满足 LRU (最近最少使用) 缓存约束的数据结构,要求 get 和 put 操作均为 O(1) 时间复杂度。
23. 合并 K 个升序链表
4 min4 min合并 K 个升序链表为一个有序链表。
148. 排序链表
4 min4 min对链表进行升序排序,要求时间复杂度 O(n log n),空间复杂度 O(1)。
138. 随机链表的复制
3 min3 min深拷贝带有随机指针的链表,新节点值、next和random指针需完全复制原链表结构且不指向原节点。
25. K 个一组翻转链表
3 min3 min将链表每k个节点一组进行翻转,不足k的组保持原序,要求实际交换节点。
24. 两两交换链表中的节点
3 min3 min两两交换链表中的相邻节点,返回新链表头节点,禁止修改节点值。
19. 删除链表的倒数第 N 个结点
3 min3 min删除链表的倒数第n个节点并返回头结点
2. 两数相加
4 min4 min逆序链表表示两整数,逐位相加处理进位,返回结果逆序链表。
21. 合并两个有序链表
3 min3 min合并两个升序链表为一个新的升序链表,通过拼接所有节点实现。
142. 环形链表 II
3 min3 min寻找链表中环的入口节点,若无环返回null
141. 环形链表
3 min3 min判断链表是否有环,使用快慢指针检测相遇点
234. 回文链表
4 min4 min判断单链表是否为回文序列,要求O(n)时间O(1)空间
206. 反转链表
3 min3 min反转单链表,返回反转后的头节点。
160. 相交链表
3 min3 min寻找两个单链表的相交起始节点,若不存在则返回null。
240. 搜索二维矩阵 II
3 min3 min在行列均有序的二维矩阵中高效搜索目标值,利用排序特性进行行列排除。
48. 旋转图像
3 min3 min原地顺时针旋转n×n矩阵90度,不使用额外空间。
54. 螺旋矩阵
4 min4 min按顺时针螺旋顺序遍历矩阵并返回所有元素
73. 矩阵置零
4 min4 min给定矩阵,将0元素所在行和列全部置零,要求原地修改且仅用常量空间。
41. 缺失的第一个正数
3 min3 min找出未排序整数数组中缺失的最小正整数,要求时间复杂度O(n)且使用常数额外空间。
238. 除了自身以外数组的乘积
3 min3 min计算数组中每个元素除自身外所有元素的乘积,禁用除法且需O(n)时间复杂度。
189. 轮转数组
3 min3 min将整数数组原地向右轮转k个位置,要求空间复杂度O(1)。
56. 合并区间
3 min3 min合并重叠区间,返回恰好覆盖所有输入区间的不重叠区间数组。
53. 最大子数组和
3 min3 min求整数数组中具有最大和的连续子数组的和
76. 最小覆盖子串
4 min4 min在s中寻找包含t所有字符的最短连续子串,包括重复字符。
239. 滑动窗口最大值
3 min3 min使用滑动窗口遍历数组,返回每个窗口中的最大值
560. 和为 K 的子数组
3 min3 min统计整数数组中连续子数组和等于k的个数
438. 找到字符串中所有字母异位词
3 min3 min在字符串s中找到所有p的异位词子串的起始索引。
42. 接雨水
3 min3 min计算柱子排列后能接住的雨水量,取决于每个位置左右两侧最大高度的较小值减去当前高度。
11. 盛最多水的容器
3 min3 min给定数组表示垂线高度,找出两条线与x轴构成容器能容纳的最大水量。
20. 有效的括号
3 min3 min判断仅包含括号字符的字符串是否有效,需满足括号类型匹配且闭合顺序正确。
3. 无重复字符的最长子串
3 min3 min找出字符串中不含重复字符的最长子串长度
15. 三数之和
3 min3 min在整数数组中找出所有不重复的三元组,使其和为0。
283. 移动零
2 min2 min将数组中的零元素移动到末尾,同时保持非零元素的相对顺序。
128. 最长连续序列
2 min2 min在未排序数组中找到最长连续序列的长度
1. 两数之和
2 min2 min使用哈希表查找两数之和等于目标值的索引
49. 字母异位词分组
2 min2 min将字母异位词分组,通过排序后作为键进行哈希分组
考****
10 min10 min该内容已加密,请输入密码查看。
重温数据结构-查找
5 min5 min减少一半比较次数 查找成功时,平均比较次数为(n+1)/2 查找不成功时,平均比较次数为n+1 int SearchBin(int a[],int n,int key) { int low=1,high=n; while(low<=high...
重温数据结构-图
10 min10 min有n个点,n(n-1)/2条边的图为完全无向图。有n个点,n(n-1)条边的图为完全有向图。简单路径:路径序列中,顶点不重复出现的路径。简单回路:除了起点和终点外,其余顶点不重复出现。连通图:在无向图中,若任意一对顶点都存在路径,则称其为连...
重温数据结构-树
4 min4 min二叉树可以结点为0,但是树的结点最少为1 完全二叉树:倒数第二层是满的,且最后一层必须左对齐 性质 1:一棵非空二叉树的第 $i$ 层上至多有 $2^{i - 1}$ 个结点($i \geq 1$)。性质 2:深度为 $h$ 的二叉树至多有...
重温数据结构-拓展线性表
6 min6 minconst int StackSize = 1024; template<class T> class SeqStack { public: SeqStack(){top = -1;} void Push(T x); T Pop(); T...
重温数据结构-线性表
5 min5 min特点:相同类型元素、有限集合 template <class T, int N> class SeqList { public: SeqList() { length = 0 }; SeqList(T a[], int n); int Ge...
吐槽
1 min1 minwin11的文件资源管理器真的很慢。。。。
重温数据结构-排序篇
14 min14 min数据结构中的排序算法是最基础的算法知识,但是长时间不碰,导致很多实现细节不太清楚,所以决定重新手写一下经典排序算法。:::gallery ::: [!TIP] 额外空间复杂度为O(1)就是原地排序 从无序区通过两两比较,将最大(最小)的元素...