Skip to content

Latest commit

 

History

History
222 lines (213 loc) · 56.4 KB

array.md

File metadata and controls

222 lines (213 loc) · 56.4 KB

数组

全部标签

数据结构

数组 矩阵 链表 双向链表 单调栈 队列 单调队列 堆(优先队列) 哈希表 字符串 字符串匹配 二叉树 二叉搜索树 最小生成树 有序集合 拓扑排序 最短路 强连通分量 欧拉回路 双连通分量 并查集 字典树 线段树 树状数组 后缀数组

算法

枚举 递归 分治 回溯 贪心 动态规划 排序 桶排序 计数排序 基数排序 归并排序 快速选择 二分查找 记忆化搜索 深度优先搜索 广度优先搜索 双指针 位运算 前缀和 计数 滑动窗口 状态压缩 哈希函数 滚动哈希 扫描线

其他

数学 数论 几何 博弈 模拟 组合数学 随机化 概率与统计 水塘抽样 拒绝采样 数据库 设计 数据流 脑筋急转弯 交互 迭代器 多线程


题号 标题 题解 标签 难度 力扣
1 两数之和 [✓] 数组 哈希表 🟢 🀄️ 🔗
4 寻找两个正序数组的中位数 [✓] 数组 二分查找 分治 🔴 🀄️ 🔗
11 盛最多水的容器 [✓] 贪心 数组 双指针 🟠 🀄️ 🔗
15 三数之和 [✓] 数组 双指针 排序 🟠 🀄️ 🔗
16 最接近的三数之和 [✓] 数组 双指针 排序 🟠 🀄️ 🔗
18 四数之和 [✓] 数组 双指针 排序 🟠 🀄️ 🔗
26 删除有序数组中的重复项 [✓] 数组 双指针 🟢 🀄️ 🔗
27 移除元素 [✓] 数组 双指针 🟢 🀄️ 🔗
31 下一个排列 [✓] 数组 双指针 🟠 🀄️ 🔗
33 搜索旋转排序数组 [✓] 数组 二分查找 🟠 🀄️ 🔗
34 在排序数组中查找元素的第一个和最后一个位置 [✓] 数组 二分查找 🟠 🀄️ 🔗
35 搜索插入位置 [✓] 数组 二分查找 🟢 🀄️ 🔗
36 有效的数独 [✓] 数组 哈希表 矩阵 🟠 🀄️ 🔗
37 解数独 [✓] 数组 哈希表 回溯 1+ 🔴 🀄️ 🔗
39 组合总和 [✓] 数组 回溯 🟠 🀄️ 🔗
40 组合总和 II [✓] 数组 回溯 🟠 🀄️ 🔗
41 缺失的第一个正数 [✓] 数组 哈希表 🔴 🀄️ 🔗
42 接雨水 [✓] 数组 双指针 2+ 🔴 🀄️ 🔗
45 跳跃游戏 II [✓] 贪心 数组 动态规划 🟠 🀄️ 🔗
46 全排列 [✓] 数组 回溯 🟠 🀄️ 🔗
47 全排列 II [✓] 数组 回溯 🟠 🀄️ 🔗
48 旋转图像 [✓] 数组 数学 矩阵 🟠 🀄️ 🔗
49 字母异位词分组 [✓] 数组 哈希表 字符串 1+ 🟠 🀄️ 🔗
51 N 皇后 [✓] 数组 回溯 🔴 🀄️ 🔗
53 最大子数组和 [✓] 数组 分治 动态规划 🟠 🀄️ 🔗
54 螺旋矩阵 [✓] 数组 矩阵 模拟 🟠 🀄️ 🔗
55 跳跃游戏 [✓] 贪心 数组 动态规划 🟠 🀄️ 🔗
56 合并区间 [✓] 数组 排序 🟠 🀄️ 🔗
57 插入区间 [✓] 数组 🟠 🀄️ 🔗
59 螺旋矩阵 II [✓] 数组 矩阵 模拟 🟠 🀄️ 🔗
63 不同路径 II [✓] 数组 动态规划 矩阵 🟠 🀄️ 🔗
64 最小路径和 [✓] 数组 动态规划 矩阵 🟠 🀄️ 🔗
66 加一 [✓] 数组 数学 🟢 🀄️ 🔗
68 文本左右对齐 [✓] 数组 字符串 模拟 🔴 🀄️ 🔗
73 矩阵置零 [✓] 数组 哈希表 矩阵 🟠 🀄️ 🔗
74 搜索二维矩阵 [✓] 数组 二分查找 矩阵 🟠 🀄️ 🔗
75 颜色分类 [✓] 数组 双指针 排序 🟠 🀄️ 🔗
78 子集 [✓] 位运算 数组 回溯 🟠 🀄️ 🔗
79 单词搜索 [✓] 数组 字符串 回溯 1+ 🟠 🀄️ 🔗
80 删除有序数组中的重复项 II [✓] 数组 双指针 🟠 🀄️ 🔗
81 搜索旋转排序数组 II [✓] 数组 二分查找 🟠 🀄️ 🔗
84 柱状图中最大的矩形 [✓] 数组 单调栈 🔴 🀄️ 🔗
85 最大矩形 [✓] 数组 动态规划 2+ 🔴 🀄️ 🔗
88 合并两个有序数组 [✓] 数组 双指针 排序 🟢 🀄️ 🔗
90 子集 II [✓] 位运算 数组 回溯 🟠 🀄️ 🔗
105 从前序与中序遍历序列构造二叉树 [✓] 数组 哈希表 2+ 🟠 🀄️ 🔗
106 从中序与后序遍历序列构造二叉树 [✓] 数组 哈希表 2+ 🟠 🀄️ 🔗
108 将有序数组转换为二叉搜索树 [✓] 二叉搜索树 数组 2+ 🟢 🀄️ 🔗
118 杨辉三角 [✓] 数组 动态规划 🟢 🀄️ 🔗
119 杨辉三角 II [✓] 数组 动态规划 🟢 🀄️ 🔗
120 三角形最小路径和 [✓] 数组 动态规划 🟠 🀄️ 🔗
121 买卖股票的最佳时机 [✓] 数组 动态规划 🟢 🀄️ 🔗
122 买卖股票的最佳时机 II [✓] 贪心 数组 动态规划 🟠 🀄️ 🔗
123 买卖股票的最佳时机 III [✓] 数组 动态规划 🔴 🀄️ 🔗
128 最长连续序列 [✓] 并查集 数组 哈希表 🟠 🀄️ 🔗
130 被围绕的区域 [✓] 深度优先搜索 广度优先搜索 并查集 2+ 🟠 🀄️ 🔗
134 加油站 [✓] 贪心 数组 🟠 🀄️ 🔗
135 分发糖果 [✓] 贪心 数组 🔴 🀄️ 🔗
136 只出现一次的数字 [✓] 位运算 数组 🟢 🀄️ 🔗
137 只出现一次的数字 II [✓] 位运算 数组 🟠 🀄️ 🔗
139 单词拆分 [✓] 字典树 记忆化搜索 数组 3+ 🟠 🀄️ 🔗
140 单词拆分 II [✓] 字典树 记忆化搜索 数组 4+ 🔴 🀄️ 🔗
149 直线上最多的点数 [✓] 几何 数组 哈希表 1+ 🔴 🀄️ 🔗
150 逆波兰表达式求值 [✓] 数组 数学 🟠 🀄️ 🔗
152 乘积最大子数组 [✓] 数组 动态规划 🟠 🀄️ 🔗
153 寻找旋转排序数组中的最小值 [✓] 数组 二分查找 🟠 🀄️ 🔗
154 寻找旋转排序数组中的最小值 II [✓] 数组 二分查找 🔴 🀄️ 🔗
157 用 Read4 读取 N 个字符 🔒 数组 交互 模拟 🟢 🀄️ 🔗
158 用 Read4 读取 N 个字符 II - 多次调用 🔒 数组 交互 模拟 🔴 🀄️ 🔗
162 寻找峰值 [✓] 数组 二分查找 🟠 🀄️ 🔗
163 缺失的区间 🔒 数组 🟢 🀄️ 🔗
164 最大间距 [✓] 数组 桶排序 基数排序 1+ 🟠 🀄️ 🔗
167 两数之和 II - 输入有序数组 [✓] 数组 双指针 二分查找 🟠 🀄️ 🔗
169 多数元素 [✓] 数组 哈希表 分治 2+ 🟢 🀄️ 🔗
170 两数之和 III - 数据结构设计 🔒 [✓] 设计 数组 哈希表 2+ 🟢 🀄️ 🔗
174 地下城游戏 [✓] 数组 动态规划 矩阵 🔴 🀄️ 🔗
179 最大数 [✓] 贪心 数组 字符串 1+ 🟠 🀄️ 🔗
188 买卖股票的最佳时机 IV [✓] 数组 动态规划 🔴 🀄️ 🔗
189 轮转数组 [✓] 数组 数学 双指针 🟠 🀄️ 🔗
198 打家劫舍 [✓] 数组 动态规划 🟠 🀄️ 🔗
200 岛屿数量 [✓] 深度优先搜索 广度优先搜索 并查集 2+ 🟠 🀄️ 🔗
204 计数质数 [✓] 数组 数学 枚举 1+ 🟠 🀄️ 🔗
209 长度最小的子数组 [✓] 数组 二分查找 前缀和 1+ 🟠 🀄️ 🔗
212 单词搜索 II [✓] 字典树 数组 字符串 2+ 🔴 🀄️ 🔗
213 打家劫舍 II [✓] 数组 动态规划 🟠 🀄️ 🔗
215 数组中的第K个最大元素 [✓] 数组 分治 快速选择 2+ 🟠 🀄️ 🔗
216 组合总和 III [✓] 数组 回溯 🟠 🀄️ 🔗
217 存在重复元素 [✓] 数组 哈希表 排序 🟢 🀄️ 🔗
218 天际线问题 树状数组 线段树 数组 4+ 🔴 🀄️ 🔗
219 存在重复元素 II [✓] 数组 哈希表 滑动窗口 🟢 🀄️ 🔗
220 存在重复元素 III 数组 桶排序 有序集合 2+ 🔴 🀄️ 🔗
221 最大正方形 [✓] 数组 动态规划 矩阵 🟠 🀄️ 🔗
228 汇总区间 [✓] 数组 🟢 🀄️ 🔗
229 多数元素 II [✓] 数组 哈希表 计数 1+ 🟠 🀄️ 🔗
238 除自身以外数组的乘积 [✓] 数组 前缀和 🟠 🀄️ 🔗
239 滑动窗口最大值 [✓] 队列 数组 滑动窗口 2+ 🔴 🀄️ 🔗
240 搜索二维矩阵 II [✓] 数组 二分查找 分治 1+ 🟠 🀄️ 🔗
243 最短单词距离 🔒 数组 字符串 🟢 🀄️ 🔗
244 最短单词距离 II 🔒 设计 数组 哈希表 2+ 🟠 🀄️ 🔗
245 最短单词距离 III 🔒 数组 字符串 🟠 🀄️ 🔗
247 中心对称数 II 🔒 递归 数组 字符串 🟠 🀄️ 🔗
248 中心对称数 III 🔒 递归 数组 字符串 🔴 🀄️ 🔗
249 移位字符串分组 🔒 数组 哈希表 字符串 🟠 🀄️ 🔗
251 展开二维向量 🔒 设计 数组 双指针 1+ 🟠 🀄️ 🔗
252 会议室 🔒 数组 排序 🟢 🀄️ 🔗
253 会议室 II 🔒 贪心 数组 双指针 3+ 🟠 🀄️ 🔗
255 验证二叉搜索树的前序遍历序列 🔒 二叉搜索树 4+ 🟠 🀄️ 🔗
256 粉刷房子 🔒 数组 动态规划 🟠 🀄️ 🔗
259 较小的三数之和 🔒 [✓] 数组 双指针 二分查找 1+ 🟠 🀄️ 🔗
260 只出现一次的数字 III [✓] 位运算 数组 🟠 🀄️ 🔗
265 粉刷房子 II 🔒 数组 动态规划 🔴 🀄️ 🔗
268 丢失的数字 [✓] 位运算 数组 哈希表 3+ 🟢 🀄️ 🔗
269 火星词典 🔒 深度优先搜索 广度优先搜索 3+ 🔴 🀄️ 🔗
271 字符串的编码与解码 🔒 设计 数组 字符串 🟠 🀄️ 🔗
274 H 指数 [✓] 数组 计数排序 排序 🟠 🀄️ 🔗
275 H 指数 II [✓] 数组 二分查找 🟠 🀄️ 🔗
280 摆动排序 🔒 贪心 数组 排序 🟠 🀄️ 🔗
281 锯齿迭代器 🔒 设计 队列 数组 1+ 🟠 🀄️ 🔗
283 移动零 [✓] 数组 双指针 🟢 🀄️ 🔗
284 窥视迭代器 [✓] 设计 数组 迭代器 🟠 🀄️ 🔗
286 墙与门 🔒 广度优先搜索 数组 矩阵 🟠 🀄️ 🔗
287 寻找重复数 [✓] 位运算 数组 双指针 1+ 🟠 🀄️ 🔗
288 单词的唯一缩写 🔒 设计 数组 哈希表 1+ 🟠 🀄️ 🔗
289 生命游戏 [✓] 数组 矩阵 模拟 🟠 🀄️ 🔗
296 最佳的碰头地点 🔒 数组 数学 矩阵 1+ 🔴 🀄️ 🔗
300 最长递增子序列 [✓] 数组 二分查找 动态规划 🟠 🀄️ 🔗
302 包含全部黑色像素的最小矩形 🔒 深度优先搜索 广度优先搜索 数组 2+ 🔴 🀄️ 🔗
303 区域和检索 - 数组不可变 [✓] 设计 数组 前缀和 🟢 🀄️ 🔗
304 二维区域和检索 - 矩阵不可变 [✓] 设计 数组 矩阵 1+ 🟠 🀄️ 🔗
305 岛屿数量 II 🔒 并查集 数组 哈希表 🔴 🀄️ 🔗
307 区域和检索 - 数组可修改 [✓] 设计 树状数组 线段树 1+ 🟠 🀄️ 🔗
308 二维区域和检索 - 矩阵可修改 🔒 设计 树状数组 线段树 2+ 🔴 🀄️ 🔗
309 买卖股票的最佳时机含冷冻期 [✓] 数组 动态规划 🟠 🀄️ 🔗
311 稀疏矩阵的乘法 🔒 数组 哈希表 矩阵 🟠 🀄️ 🔗
312 戳气球 数组 动态规划 🔴 🀄️ 🔗
313 超级丑数 [✓] 数组 数学 动态规划 🟠 🀄️ 🔗
315 计算右侧小于当前元素的个数 树状数组 线段树 数组 4+ 🔴 🀄️ 🔗
317 离建筑物最近的距离 🔒 广度优先搜索 数组 矩阵 🔴 🀄️ 🔗
318 最大单词长度乘积 [✓] 位运算 数组 字符串 🟠 🀄️ 🔗
321 拼接最大数 贪心 数组 2+ 🔴 🀄️ 🔗
322 零钱兑换 [✓] 广度优先搜索 数组 动态规划 🟠 🀄️ 🔗
324 摆动排序 II 贪心 数组 分治 2+ 🟠 🀄️ 🔗
325 和等于 k 的最长子数组长度 🔒 数组 哈希表 前缀和 🟠 🀄️ 🔗
327 区间和的个数 树状数组 线段树 数组 4+ 🔴 🀄️ 🔗
329 矩阵中的最长递增路径 [✓] 深度优先搜索 广度优先搜索 5+ 🔴 🀄️ 🔗
330 按要求补齐数组 贪心 数组 🔴 🀄️ 🔗
334 递增的三元子序列 [✓] 贪心 数组 🟠 🀄️ 🔗
335 路径交叉 几何 数组 数学 🔴 🀄️ 🔗
336 回文对 字典树 数组 哈希表 1+ 🔴 🀄️ 🔗
346 数据流中的移动平均值 🔒 [✓] 设计 队列 数组 1+ 🟢 🀄️ 🔗
347 前 K 个高频元素 [✓] 数组 哈希表 分治 5+ 🟠 🀄️ 🔗
348 设计井字棋 🔒 设计 数组 哈希表 2+ 🟠 🀄️ 🔗
349 两个数组的交集 [✓] 数组 哈希表 双指针 2+ 🟢 🀄️ 🔗
350 两个数组的交集 II [✓] 数组 哈希表 双指针 2+ 🟢 🀄️ 🔗
353 贪吃蛇 🔒 设计 队列 数组 2+ 🟠 🀄️ 🔗
354 俄罗斯套娃信封问题 [✓] 数组 二分查找 动态规划 1+ 🔴 🀄️ 🔗
356 直线镜像 🔒 数组 哈希表 数学 🟠 🀄️ 🔗
360 有序转化数组 🔒 数组 数学 双指针 1+ 🟠 🀄️ 🔗
361 轰炸敌人 🔒 数组 动态规划 矩阵 🟠 🀄️ 🔗
362 敲击计数器 🔒 设计 队列 数组 2+ 🟠 🀄️ 🔗
363 矩形区域不超过 K 的最大数值和 数组 二分查找 矩阵 2+ 🔴 🀄️ 🔗
368 最大整除子集 [✓] 数组 数学 动态规划 1+ 🟠 🀄️ 🔗
370 区间加法 🔒 数组 前缀和 🟠 🀄️ 🔗
373 查找和最小的 K 对数字 [✓] 数组 堆(优先队列) 🟠 🀄️ 🔗
376 摆动序列 [✓] 贪心 数组 动态规划 🟠 🀄️ 🔗
377 组合总和 Ⅳ [✓] 数组 动态规划 🟠 🀄️ 🔗
378 有序矩阵中第 K 小的元素 [✓] 数组 二分查找 矩阵 2+ 🟠 🀄️ 🔗
379 电话目录管理系统 🔒 [✓] 设计 队列 数组 2+ 🟠 🀄️ 🔗
380 O(1) 时间插入、删除和获取随机元素 [✓] 设计 数组 哈希表 2+ 🟠 🀄️ 🔗
381 O(1) 时间插入、删除和获取随机元素 - 允许重复 [✓] 设计 数组 哈希表 2+ 🔴 🀄️ 🔗
384 打乱数组 [✓] 数组 数学 随机化 🟠 🀄️ 🔗
391 完美矩形 数组 扫描线 🔴 🀄️ 🔗
393 UTF-8 编码验证 [✓] 位运算 数组 🟠 🀄️ 🔗
396 旋转函数 [✓] 数组 数学 动态规划 🟠 🀄️ 🔗
399 除法求值 [✓] 深度优先搜索 广度优先搜索 并查集 4+ 🟠 🀄️ 🔗
403 青蛙过河 数组 动态规划 🔴 🀄️ 🔗
406 根据身高重建队列 [✓] 树状数组 线段树 数组 1+ 🟠 🀄️ 🔗
407 接雨水 II [✓] 广度优先搜索 数组 矩阵 1+ 🔴 🀄️ 🔗
410 分割数组的最大值 贪心 数组 二分查找 2+ 🔴 🀄️ 🔗
411 最短独占单词缩写 🔒 位运算 数组 字符串 1+ 🔴 🀄️ 🔗
413 等差数列划分 [✓] 数组 动态规划 滑动窗口 🟠 🀄️ 🔗
414 第三大的数 [✓] 数组 排序 🟢 🀄️ 🔗
416 分割等和子集 [✓] 数组 动态规划 🟠 🀄️ 🔗
417 太平洋大西洋水流问题 [✓] 深度优先搜索 广度优先搜索 数组 1+ 🟠 🀄️ 🔗
418 屏幕可显示句子的数量 🔒 数组 字符串 动态规划 🟠 🀄️ 🔗
419 棋盘上的战舰 [✓] 深度优先搜索 数组 矩阵 🟠 🀄️ 🔗
421 数组中两个数的最大异或值 [✓] 位运算 字典树 数组 1+ 🟠 🀄️ 🔗
422 有效的单词方块 🔒 数组 矩阵 🟢 🀄️ 🔗
425 单词方块 🔒 字典树 数组 字符串 1+ 🔴 🀄️ 🔗
427 建立四叉树 [✓] 数组 分治 1+ 🟠 🀄️ 🔗
435 无重叠区间 [✓] 贪心 数组 动态规划 1+ 🟠 🀄️ 🔗
436 寻找右区间 [✓] 数组 二分查找 排序 🟠 🀄️ 🔗
442 数组中重复的数据 [✓] 数组 哈希表 🟠 🀄️ 🔗
444 序列重建 🔒 拓扑排序 数组 🟠 🀄️ 🔗
446 等差数列划分 II - 子序列 数组 动态规划 🔴 🀄️ 🔗
447 回旋镖的数量 [✓] 数组 哈希表 数学 🟠 🀄️ 🔗
448 找到所有数组中消失的数字 [✓] 数组 哈希表 🟢 🀄️ 🔗
452 用最少数量的箭引爆气球 [✓] 贪心 数组 排序 🟠 🀄️ 🔗
453 最小操作次数使数组元素相等 [✓] 数组 数学 🟠 🀄️ 🔗
454 四数相加 II [✓] 数组 哈希表 🟠 🀄️ 🔗