🚀 DataStructure-Java for leetcode and The Bule cup Solutions
开源练习题库 😄
我爱计算机科学 !!
🚩 🚩
| 数据结构 | 变种 | 相关题目 | 讲解文章 |
|---|---|---|---|
| 顺序线性表:向量 | |||
| 单链表 | 1. 双向链表 2. 静态链表 3. 对称矩阵 4. 稀疏矩阵 |
||
| 哈希表 | 1. 散列函数 2. 解决碰撞/填充因子 |
||
| 栈和队列 | 1. 广义栈 2. 双端队列 |
||
| 队列 | 1. 链表实现 2. 循环数组实现 3. 双端队列 |
||
| 字符串 | 1. KMP算法 2. 有限状态自动机 3. 模式匹配有限状态自动机 4. BM 模式匹配算法 5. BM-KMP 算法 6. BF 算法 |
||
| 树 | 1. 二叉树 2. 并查集 3. Huffman 树 |
||
| 数组实现的堆 | 1. 极大堆和极小堆 2. 极大极小堆 3. 双端堆 4. d 叉堆 |
||
| 树实现的堆 | 1. 左堆 2. 扁堆 3. 二项式堆 4. 斐波那契堆 5. 配对堆 |
||
| 查找 | 1. 哈希表 2. 跳跃表 3. 排序二叉树 4. AVL 树 5. B 树 / B+ 树 / B* 树 6. AA 树 7. 红黑树 8. 排序二叉堆 9. Splay 树 10. 双链树 11. Trie 树 12. R 树 |
||
| -------------------------------------------- | -------------------------------------------------------------------------------------------- | --------------------------- | ----------------------------------- |
| 算法 | 具体类型 | 相关题目 | 讲解文章 |
|---|---|---|---|
| 排序算法 | 1. 冒泡排序 2. 插入排序 3. 选择排序 4. 希尔 Shell 排序 5. 快速排序 6. 归并排序 7. 堆排序 8. 线性排序算法 9. 自省排序 10. 间接排序 11. 计数排序 12. 基数排序 13. 桶排序 14. 外部排序 - k 路归并败者树 15. 外部排序 - 最佳归并树 |
||
| 递归与分治 | 1. 二分搜索/查找 2. 大整数的乘法 3. Strassen 矩阵乘法 4. 棋盘覆盖 5. 合并排序 6. 快速排序 7. 线性时间选择 8. 最接近点对问题 9. 循环赛日程表 |
||
| 动态规划 | 1. 矩阵连乘问题 2. 最长公共子序列 3. 最大子段和 4. 凸多边形最优三角剖分 5. 多边形游戏 6. 图像压缩 7. 电路布线 8. 流水作业调度 9. 0-1 背包问题/背包九讲 10. 最优二叉搜索树 11. 动态规划加速原理 12. 树型 DP |
||
| 贪心 | 1. 活动安排问题 2. 最优装载 3. 哈夫曼编码 4. 单源最短路径 5. 最小生成树 6. 多机调度问题 |
||
| 回溯法 | 1. 装载问题 2. 批处理作业调度 3. 符号三角形问题 4. n 后问题 5. 0-1 背包问题 6. 最大团问题 7. 图的 m 着色问题 8. 旅行售货员问题 9. 圆排列问题 10. 电路板排列问题 11. 连续邮资问题 |
||
| 搜索 | 1. 枚举 2. DFS 3. BFS 4. 启发式搜索 |
||
| 随机化 | 1. 随机数 2. 数值随机化算法 3. Sherwood 舍伍德算法 4. Las Vegas 拉斯维加斯算法 5. Monte Carlo 蒙特卡罗算法 |
1. 计算 π 值 2. 计算定积分 3. 解非线性方程组 4. 线性时间选择算法 5. 跳跃表 6. n 后问题 7. 整数因子分解 8. 主元素问题 9. 素数测试 |
|
| 图论 | 1. 遍历 DFS / BFS 2. AOV / AOE 网络 3. Kruskal 算法(最小生成树) 4. Prim 算法(最小生成树) 5. Boruvka 算法(最小生成树) 6. Dijkstra 算法(单源最短路径) 7. Bellman-Ford 算法(单源最短路径) 8. SPFA 算法(单源最短路径) 9. Floyd 算法(多源最短路径) 10. Johnson 算法(多源最短路径) 11. Fleury 算法(欧拉回路) 12. Ford-Fulkerson 算法(最大网络流增广路) 13. Edmonds-Karp 算法(最大网络流) 14. Dinic 算法(最大网络流) 15. 一般预流推进算法 16. 最高标号预流推进 HLPP 算法 17. Primal-Dual 原始对偶算法(最小费用流)18. Kosaraju 算法(有向图强连通分量) 19. Tarjan 算法(有向图强连通分量) 20. Gabow 算法(有向图强连通分量) 21. 匈牙利算法(二分图匹配) 22. Hopcroft-Karp 算法(二分图匹配) 23. kuhn munkras 算法(二分图最佳匹配) 24. Edmonds’ Blossom-Contraction 算法(一般图匹配) |
1. 图遍历 2. 有向图和无向图的强弱连通性 3. 割点/割边 3. AOV 网络和拓扑排序 4. AOE 网络和关键路径 5. 最小代价生成树/次小生成树 6. 最短路径问题/第 K 短路问题 7. 最大网络流问题 8. 最小费用流问题 9. 图着色问题 10. 差分约束系统 11. 欧拉回路 12. 中国邮递员问题 13. 汉密尔顿回路 14. 最佳边割集/最佳点割集/最小边割集/最小点割集/最小路径覆盖/最小点集覆盖 15. 边覆盖集 16. 二分图完美匹配和最大匹配问题 17. 仙人掌图 18. 弦图 19. 稳定婚姻问题 20. 最大团问题 |
|
| 数论 | 1. 最大公约数 2. 最小公倍数 3. 分解质因数 4. 素数判定 5. 进制转换 6. 高精度计算 7. 整除问题 8. 同余问题 9. 欧拉函数 10. 扩展欧几里得 11. 置换群 12. 母函数 13. 离散变换 14. 康托展开 15. 矩阵 16. 向量 17. 线性方程组 18. 线性规划 |
||
| 几何 | 1. 凸包 - Gift wrapping 2. 凸包 - Graham scan 3. 线段问题 4. 多边形和多面体相关问题 |
||
| NP 完全 | 1. 计算模型 2. P 类与 NP 类问题 3. NP 完全问题 4. NP 完全问题的近似算法 |
1. 随机存取机 RAM 2. 随机存取存储程序机 RASP 3. 图灵机 4. 非确定性图灵机 5. P 类与 NP 类语言 6. 多项式时间验证 7. 多项式时间变换 8. Cook定理 9. 合取范式的可满足性问题 CNF-SAT 10. 3 元合取范式的可满足性问题 3-SAT 11. 团问题 CLIQUE 12. 顶点覆盖问题 VERTEX-COVER 13. 子集和问题 SUBSET-SUM 14. 哈密顿回路问题 HAM-CYCLE 15. 旅行售货员问题 TSP 16. 顶点覆盖问题的近似算法 17. 旅行售货员问题近似算法 18. 具有三角不等式性质的旅行售货员问题 19. 一般的旅行售货员问题 20. 集合覆盖问题的近似算法 21. 子集和问题的近似算法 22. 子集和问题的指数时间算法 23. 子集和问题的多项式时间近似格式 |
|
| ------------ | ------------------------------------------------------------------ | ----------------------------------------------------------------- | -------------------- |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 1001 | A+B Problem | Java | 简单 | 入门 |
| 1000 | 超级玛丽游戏 | Java | 简单 | 打印字符串 |
| 5704 | 字母转换 | Java | 简单 | ASCII与整型 |
| 5705 | 数字反转 | Java | 简单 | For 循环倒序输出 |
| 5706 | 再分肥宅水 | Java | 简单 | format 格式化输出 |
| 1425 | 小鱼的游泳时间 | Java | 简单 | if else |
| 5708 | 三角形面积 | Java | 简单 | Math.sqrt |
| 1421 | 小玉买文具 | Java | 简单 | 化整 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 5711 | 闰年判断 | Java | 简单 | 闰年规则 |
| 5712 | Apples | Java | 简单 | 判断 |
| 5713 | 洛谷团队系统 | Java | 简单 | 方程比较 |
| 1085 | 不高兴的津津 | Java | 简单 | 数组 存储 |
| 1055 | ISBN 号码 | Java | 简单 | 需求For 循环算法 |
| 5717 | 【深基3.习8】三角形分类 | Java | 简单 | 选择 |
| 1888 | 三角函数 | Java | 简单 | 选择 |
| 5715 | 三位数排序 | Java | 简单 | Arrays.Sort |
| 4414 | [COCI2006-2007#2] ABC | Java | 简单 | 对应排序 |
| 1422 | 小玉家的电费 | Java | 简单 | else if 浮点格式输出 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 5718 | 寻找最小值 | Java | 简单 | 基本 |
| 5719 | 分类平均 | Java | 简单 | 基本 用法 |
| 5720 | 一尺之棰 | Java | 简单 | while 简单循环 |
| 5721 | 数字直角三角形 | Java | 简单 | while 简单循环 |
| 1980 | 计数问题 | Java | 简单 | |
| 1035 | 级数求和 | Java | 简单 | |
| 2669 | 金币 | Java | 简单 | |
| 5722 | 数列求和 | Java | 简单 | |
| 5723 | 质数口袋 | Java | 中等 | |
| 1217 | 回文质数 | Java | 中等 | 质数 回文数 算法 |
| 1423 | 小玉在游泳 | Java | 中等 | 等差 比 数列 求和 |
| 1307 | 数字翻转 | Java | 中等 | 数字翻转 求模运算 |
| 5724 | 求极差 | Java | 中等 | 数组排序 |
| 1420 | 最长连号 | Java | 中等 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 1428 | 小鱼比可爱 | Java | 简单 | 注意数组临界点 |
| 1427 | 小鱼的数字游戏 | Java | 简单 | 倒序输出 |
| 5727 | 冰雹猜想 | Java | 简单 | 基本算法 |
| 1047 | 校门外的树 | Java | 简单 | 0 1 思想去重 |
| 5728 | 旗鼓相当的对手 | Java | 简单 | 二维数组 封装函数调用 |
| 5729 | 工艺品制作 | Java | 简单 | 0 1 思想去重 |
| 2615 | 神奇的幻方 | Java | 简单 | 幻方规律 二维数组移动 |
| 5730 | 【深基5.例10】显示屏 | Java | 简单 | 行思想 数组打印 |
| 1554 | 梦中的统计 | Java | 简单 | |
| 2141 | [NOIP2014 普及组] 珠心算测验 | Java | 简单 | |
| 1614 | 爱与愁的心痛 | Java | 简单 | |
| 2911 | [USACO08OCT]Bovine Bones G | Java | 简单 | |
| 1161 | 开灯 | Java | 简单 | |
| 5731 | 【深基5.习6】蛇形方阵 | Java | 简单 | |
| 5732 | 【深基5.习7】杨辉三角 | Java | 简单 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 5733 | 【深基6.例1】自动修正 | Java | 简单 | |
| 1914 | 小书童——凯撒密码 | Java | 简单 | |
| 1125 | [NOIP2008 提高组] 笨小猴 | Java | 简单 | |
| 5015 | [NOIP2018 普及组] 标题统计 | Java | 简单 | |
| 5734 | 【深基6.例6】文字处理软件 | Java | 简单 | |
| 1308 | [NOIP2011 普及组] 统计单词数 | Java | 简单 | |
| 1765 | 手机 | Java | 简单 | 打表穷举 注意不能写 else 因为 '\n' , '\r' |
| 3741 | honoka的键盘 | Java | 简单 | 穷举所有 排列情况 然后标记 |
| 1321 | 单词覆盖还原 | Java | 简单 | 或 判断三个连续的字母 |
| 1553 | 数字反转(升级版) | Java | 简单 | 关键为 识别输入的 数据类型 |
| 1200 | [USACO1.1]你的飞碟在这儿Your Ride Is Here | Java | 简单 | |
| 1597 | 语句解析 | Java | 一般 | Java 报RE代解决:fire: C++ 没问题 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 5735 | 【深基7.例1】距离函数 | Java | 简单 | & 运算符号 |
| 5736 | 【深基7.例2】质数筛 | Java | 简单 | 注意复制时 数组下标问题 |
| 5737 | 【深基7.例3】闰年展示 | Java | 简单 | 能被4 整除不被100 整除 能被400 整除 |
| 5738 | 【深基7.例4】歌唱比赛 | Java | 简单 | 二维矩阵 |
| 5739 | 【深基7.例7】计算阶乘 | Java | 简单 | |
| 5461 | 赦免战俘 | Java | 中等 | 递归二维矩阵 |
| 5740 | 【深基7.例9】最厉害的学生 | Java | 简单 | Integer.parseInt(str) |
| 2415 | 集合求和 | Java | 简单 | 找规律 |
| 1304 | 哥德巴赫猜想 | Java | 一般 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 2241 | 统计方形(数据加强版) | Java | 简单 | |
| 2089 | 烤鸡 | Java | 简单 | 多重for |
| 1618 | 三连击(升级版) | Java | 简单 |
-
学习
-
面试
-
学习计划
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 14 | 最长公共前缀 | Java | 简单 | 字符串简介 |
| 26 | 删除排序数组中的重复项 | Java | 简单 | 总结 |
| 27 | 移除元素 | Java | 简单 | 双指针技巧 |
| 28 | 实现 strStr() | Java & Python | 简单 | 字符串简介 |
| 54 | 螺旋矩阵 | Java & Python | 中等 | 二维数组简介 |
| 66 | 加一 | Java & Python | 简单 | 数组简介 |
| 67 | 二进制求和 | Java & Python | 简单 | 字符串简介 |
| 118 | 帕斯卡三角形 | Java & Python | 简单 | 二维数组简介 |
| 119 | 帕斯卡三角形 II | Java & Python | 简单 | 总结 |
| 151 | 翻转字符串里的单词 | Java & Python | 中等 | 总结 |
| 167 | 两数之和 II - 输入有序数组 | Java & Python | 简单 | 双指针技巧 |
| 189 | 旋转数组 | Java & Python | 简单 | 总结 |
| 209 | 长度最小的子数组 | Java & Python | 中等 | 双指针技巧 |
| 283 | 移动零 | Java & Python | 简单 | 总结 |
| 344 | 反转字符串 | Java & Python | 简单 | 双指针技巧 |
| 485 | 最大连续1的个数 | Java & Python | 简单 | 双指针技巧 |
| 498 | 对角线遍历 | Java & Python | 中等 | 二维数组简介 |
| 557 | 反转字符串中的单词 III | Java & Python | 简单 | 总结 |
| 561 | 数组拆分 I | Java & Python | 简单 | 双指针技巧 |
| 724 | 寻找数组的中心索引 | Java & Python | 简单 | 数组简介 |
| 747 | 至少是其他数字两倍的最大数 | Java & Python | 简单 | 数组简介 |
| - | ||||
| - | ||||
| - | ||||
| NULL | 简易数组翻转 | Java | 简单 | 两种方法 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 20 | 有效的括号 | Java & Python | 简单 | Stack: Last-in-first-out Data Structure |
| 133 | Clone Graph | Java & Python | 中等 | Stack and DFS |
| 150 | 逆波兰表达式求值 | Java & Python | 中等 | Stack: Last-in-first-out Data Structure |
| 155 | 最小栈 | Java & Python | 简单 | Stack: Last-in-first-out Data Structure |
| 200 | 岛屿数量 | Java & Python | 中等 | Queue and BFS |
| 225 | Implement Stack using Queues | Java & Python | 简单 | 总结 |
| 232 | Implement Queue using Stacks | Java & Python | 简单 | 总结 |
| 279 | 完全平方数 | Java & Python | 中等 | Queue and BFS |
| 394 | Decode String | Java & Python | 中等 | 总结 |
| 494 | Target Sum | Java & Python | 中等 | Stack and DFS |
| 542 | 01 Matrix | Java & Python | 中等 | 总结 |
| 622 | Design Circular Queue | Java & Python | 中等 | Queue: First-in-first-out Data Structure |
| 733 | Flood Fill | Java & Python | 简单 | 总结 |
| 739 | Daily Temperatures | Java & Python | 中等 | Stack: Last-in-first-out Data Structure |
| 752 | Open the Lock | Java & Python | 中等 | Queue and BFS |
| 841 | Keys and Rooms | Java & Python | 中等 | 总结 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 1 | 顺序表实现 | Java | 简单 | 数据结构 |
| 2 | 链表实现 | Java | 简单 | 数据结构 |
| 3 | 双向链表实现 | Java | 简单 | 数据结构 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 2 | 两数相加 | Java & Python | 中等 | 总结 |
| 19 | 删除链表的倒数第N个节点 | Java & Python | 中等 | Two Pointer Technique |
| 21 | 合并两个有序链表 | Java & Python | 简单 | 总结 |
| 61 | 旋转链表 | Java & Python | 中等 | 总结 |
| 138 | 复制带随机指针的链表 | Java & Python | 中等 | 总结 |
| 141 | 环形链表 | Java & Python | 简单 | Two Pointer Technique |
| 142 | 环形链表 II | Java & Python | 中等 | Two Pointer Technique |
| 160 | 相交链表 | Java & Python | 简单 | Two Pointer Technique |
| 203 | 移除链表元素 | Java & Python | 简单 | Classic Problems |
| 206 | 反转链表 | Java & Python | 简单 | Classic Problems |
| 234 | 回文链表 | Java & Python | 简单 | Classic Problems |
| 328 | 奇偶链表 | Java & Python | 中等 | Classic Problems |
| 430 | Flatten a Multilevel Doubly 链表 | Java & Python | 中等 | 总结 |
| 707 | Design 链表 | Java & Python | 简单 | Singly 链表 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 1 | 两数之和 | Java & Python | 简单 | Practical Application - Hash Map |
| 3 | 无重复字符的最长子串 | Java & Python | 中等 | 总结 |
| 36 | 有效的数独 | Java & Python | 中等 | Practical Application - Design the Key |
| 49 | 字母异位词分组 | Java & Python | 中等 | Practical Application - Design the Key |
| 136 | 只出现一次的数字 | Java & Python | 简单 | Practical Application - Hash Set |
| 202 | 快乐数 | Java & Python | 简单 | Practical Application - Hash Set |
| 205 | Isomorphic Strings | Java & Python | 简单 | Practical Application - Hash Map |
| 217 | 存在重复元素 | Java & Python | 简单 | Practical Application - Hash Set |
| 219 | 存在重复元素 II | Java & Python | 简单 | Practical Application - Hash Map |
| 347 | 前K个高频元素 | Java & Python | 中等 | 总结 |
| 349 | Intersection of Two Arrays | Java & Python | 简单 | Practical Application - Hash Set |
| 350 | 两个数组的交集 II | Java & Python | 简单 | Practical Application - Hash Map |
| 380 | 常数时间插入、删除和获取随机元素 | Java & Python | 中等 | 总结 |
| 387 | 字符串中的第一个唯一字符 | Java & Python | 简单 | Practical Application - Hash Map |
| 454 | 4Sum II | Java & Python | 中等 | 总结 |
| 599 | Minimum Index Sum of Two Lists | Java & Python | 简单 | Practical Application - Hash Map |
| 652 | Find Duplicate Subtrees | Java & Python | 中等 | Practical Application - Design the Key |
| 705 | Design HashSet | Java & Python | 简单 | Design a Hash Table |
| 706 | Design HashMap | Java & Python | 简单 | Design a Hash Table |
| 771 | Jewels and Stones | Java & Python | 简单 | 总结 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 4 | 寻找两个有序数组的中位数 | Java & Python | 困难 | More Practices II |
| 33 | 搜索旋转排序数组 | Java & Python | 中等 | Template I |
| 34 | 在排序数组中查找元素的第一个和最后一个位置 | Java & Python | 中等 | Template III |
| 50 | Pow(x, n) | Java & Python | 中等 | 总结 |
| 69 | x的平方根 | Java & Python | 简单 | Template I |
| 153 | Find Minimum in Rotated Sorted Array | Java & Python | 中等 | Template II |
| 154 | Find Minimum in Rotated Sorted Array II | Java & Python | 困难 | More Practices |
| 162 | 寻找峰值 | Java & Python | 中等 | Template II |
| 167 | 两数之和 II - 输入有序数组 | Java & Python | 简单 | More Practices |
| 278 | 第一个错误的版本 | Java & Python | 简单 | Template II |
| 287 | Find the Duplicate Number | Java & Python | 中等 | More Practices II |
| 349 | Intersection of Two Arrays | Java & Python | 简单 | More Practices |
| 350 | 两个数组的交集 II | Java & Python | 简单 | More Practices |
| 367 | Valid Perfect Square | Java & Python | 简单 | 总结 |
| 374 | Guess Number Higher or Lower | Java & Python | 简单 | Template I |
| 410 | Split Array Largest Sum | Java & Python | 困难 | More Practices II |
| 658 | Find K Closest Elements | Java & Python | 中等 | Template III |
| 704 | Binary Search | Java & Python | 简单 | Background |
| 719 | Find K-th Smallest Pair Distance | Java & Python | 困难 | More Practices II |
| 744 | Find Smallest Letter Greater Than Target | Java & Python | 简单 | 总结 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 94 | 二叉树的中序遍历 | Java & Python | 中等 | 树的遍历 |
| 101 | 对称二叉树 | Java & Python | 简单 | 运用递归解决树问题 |
| 102 | 二叉树的层次遍历 | Java & Python | 中等 | 树的遍历 |
| 104 | 二叉树的最大深度 | Java & Python | 简单 | 运用递归解决树问题 |
| 105 | 从前序与中序遍历序列构造二叉树 | Java & Python | 中等 | 总结 |
| 106 | Construct Binary Tree from Inorder and Postorder Traversal | Java & Python | 中等 | 总结 |
| 112 | Path Sum | Java & Python | 简单 | 运用递归解决树问题 |
| 116 | 填充每个节点的下一个右侧节点指针 | Java & Python | 中等 | 总结 |
| 117 | Populating Next Right Pointers in Each Node II | Java & Python | 中等 | 总结 |
| 144 | 二叉树的前序遍历 | Java & Python | 中等 | 树的遍历 |
| 145 | 二叉树的后序遍历 | Java & Python | 困难 | 树的遍历 |
| 236 | 二叉树的最近公共祖先 | Java & Python | 中等 | 总结 |
| 297 | 二叉树的序列化与反序列化 | Java & Python | 困难 | 总结 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 98 | 验证二叉搜索树 | Java & Python | 中等 | Introduction to BST |
| 108 | 将有序数组转换为二叉搜索树 | Java & Python | 简单 | Appendix: Height-balanced BST |
| 110 | Balanced Binary Tree | Java & Python | 简单 | Appendix: Height-balanced BST |
| 173 | Binary Search Tree Iterator | Java & Python | 中等 | Introduction to BST |
| 220 | Contains Duplicate III | Java & Python | 中等 | 总结 |
| 235 | 二叉搜索树的最近公共祖先 | Java & Python | 简单 | 总结 |
| 450 | Delete Node in a BST | Java & Python | 中等 | Basic Operations in BST |
| 700 | Search in a Binary Search Tree | Java & Python | 简单 | Basic Operations in BST |
| 701 | Insert into a Binary Search Tree | Java & Python | 中等 | Basic Operations in BST |
| 703 | Kth Largest Element in a Stream | Java & Python | 简单 | 总结 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 429 | N-ary Tree Level Order Traversal | Java & Python | 简单 | Traversal |
| 559 | Maximum Depth of N-ary Tree | Java & Python | 简单 | Recursion |
| 589 | N-ary Tree Preorder Traversal | Java & Python | 简单 | Traversal |
| 590 | N-ary Tree Postorder Traversal | Java & Python | 简单 | Traversal |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 208 | 实现 Trie (前缀树) | Java & Python | 中等 | Basic Operations |
| 211 | Add and Search Word - Data structure design | Java & Python | 中等 | Practical Application I |
| 212 | 单词搜索 II | Java & Python | 困难 | Practical Application II |
| 336 | Palindrome Pairs | Java & Python | 困难 | Practical Application II |
| 421 | Maximum XOR of Two Numbers in an Array | Java & Python | 中等 | Practical Application II |
| 648 | Replace Words | Java & Python | 中等 | Practical Application I |
| 677 | Map Sum Pairs | Java & Python | 中等 | Practical Application I |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| ### | Calculate Entropy | Java & Python | 简单 | Implementation |
| ### | Calculate Maximum Information Gain | Java & Python | 简单 | Implementation |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 21 | 合并两个有序链表 | Java & Python | 简单 | 总结 |
| 24 | Swap Nodes in Pairs | Java & Python | 中等 | Principle of Recursion |
| 50 | Pow(x, n) | Java & Python | 中等 | Complexity Analysis |
| 70 | 爬楼梯 | Java & Python | 简单 | Memoization |
| 95 | Unique Binary Search Trees II | Java & Python | 中等 | 总结 |
| 104 | 二叉树的最大深度 | Java & Python | 简单 | Complexity Analysis |
| 118 | 帕斯卡三角形 | Java & Python | 简单 | Recurrence Relation |
| 119 | 帕斯卡三角形 II | Java & Python | 简单 | Recurrence Relation |
| 206 | 反转链表 | Java & Python | 简单 | Recurrence Relation |
| 344 | 反转字符串 | Java & Python | 简单 | Principle of Recursion |
| 509 | Fibonacci Number | Java & Python | 简单 | Memoization |
| 779 | K-th Symbol in Grammar | Java & Python | 中等 | 总结 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 17 | 电话号码的字母组合 | Java & Python | 中等 | 总结 |
| 22 | 括号生成 | Java & Python | 中等 | Recursion to Iteration |
| 37 | Sudoku Solver | Java & Python | 困难 | Backtracking |
| 46 | 全排列 | Java & Python | 中等 | 总结 |
| 52 | N-Queens II | Java & Python | 困难 | Backtracking |
| 77 | Combinations | Java & Python | 中等 | Backtracking |
| 84 | 柱状图中最大的矩形 | Java & Python | 困难 | 总结 |
| 94 | 二叉树的中序遍历 | Java & Python | 中等 | Recursion to Iteration |
| 98 | 验证二叉搜索树 | Java & Python | 中等 | Divide and Conquer |
| 100 | Same Tree | Java & Python | 简单 | Recursion to Iteration |
| 102 | 二叉树的层次遍历 | Java & Python | 中等 | Recursion to Iteration |
| 218 | 天际线问题 | Java & Python | 困难 | 总结 |
| 240 | 搜索二维矩阵 II | Java & Python | 中等 | Divide and Conquer |
| 912 | Sort an Array | Java & Python | 中等 | Divide and Conquer |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 1114 | Print in Order | Java & Python | 简单 | Concurrency |
| 1115 | Print FooBar Alternately | Java & Python | 中等 | Concurrency |
| 1116 | Print Zero Even Odd | Java & Python | 中等 | Concurrency |
| 1117 | Building H2O | Java & Python | 中等 | Concurrency |
| 1195 | Fizz Buzz Multithreaded | Java & Python | 中等 | Concurrency |
| 1226 | The Dining Philosophers | Java & Python | 中等 | Concurrency |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 192 | Word Frequency | bash | 中等 | Shell |
| 193 | Valid Phone Numbers | bash | 简单 | Shell |
| 194 | Transpose File | bash | 中等 | Shell |
| 195 | Tenth Line | bash | 简单 | Shell |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 175 | Combine Two Tables | MySQL | 简单 | Database |
| 176 | 第二高的薪水 | MySQL | 简单 | Database |
| 177 | Nth Highest Salary | MySQL | 中等 | Database |
| 178 | Rank Scores | MySQL | 中等 | Database |
| 180 | Consecutive Numbers | MySQL | 中等 | Database |
| 181 | Employees Earning More Than Their Managers | MySQL | 简单 | Database |
| 182 | Duplicate Emails | MySQL | 简单 | Database |
| 183 | Customers Who Never Order | MySQL | 简单 | Database |
| 184 | Department Highest Salary | MySQL | 中等 | Database |
| 185 | Department Top Three Salaries | MySQL | 困难 | Database |
| 196 | Delete Duplicate Emails | MySQL | 简单 | Database |
| 197 | Rising Temperature | MySQL | 简单 | Database |
| 262 | Trips and Users | MySQL | 困难 | Database |
| 595 | Big Countries | MySQL | 简单 | Database |
| 596 | Classes More Than 5 Students | MySQL | 简单 | Database |
| 601 | Human Traffic of Stadium | MySQL | 困难 | Database |
| 620 | Not Boring Movies | MySQL | 简单 | Database |
| 626 | Exchange Seats | MySQL | 中等 | Database |
| 627 | Swap Salary | MySQL | 简单 | Database |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| Sort 6 | 堆排序 | Java & Python | 中等 | 排序算法 |
| Sort 7 | 桶排序 | Java & Python | 简单 | 排序算法 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| Sort 1 | 冒泡排序 | Java ) | 简单 | 排序算法 |
| Sort 2 | 选择排序 | Java ) | 简单 | 排序算法 |
| Sort 3 | 插入排序 | Java ) | 简单 | 排序算法 |
| Sort 4 | 希尔排序 | Java ) | 简单 | 排序算法 |
| Sort 5 | 归并排序 | Java ) | 简单 | 排序算法 |
| Sort 6 | 快速排序 | Java ) | 简单 | 排序算法 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| Search 1 | 二分搜索 | Java & Python | 简单 | 搜索算法 |
| Search 2 | 插值搜索 | Java & Python | 简单 | 搜索算法 |
| Search 3 | 顺序搜索 | Java & Python | 简单 | 搜索算法 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 1 | 两数之和 | Java & Python | 简单 | 数组 |
| 7 | 整数反转 | Java & Python | 简单 | 字符串 |
| 8 | 字符串转换整数(atoi) | Java & Python | 中等 | 字符串 |
| 13 | 罗马数字转整数 | Java & Python | 简单 | 数学 |
| 14 | 最长公共前缀 | Java & Python | 简单 | 字符串 |
| 19 | 删除链表的倒数第N个节点 | Java & Python | 中等 | 链表 |
| 20 | 有效的括号 | Java & Python | 简单 | 其他 |
| 21 | 合并两个有序链表 | Java & Python | 简单 | 链表 |
| 26 | 删除排序数组中的重复项 | Java & Python | 简单 | 数组 |
| 28 | 实现 strStr() | Java & Python | 简单 | 字符串 |
| 36 | 有效的数独 | Java & Python | 中等 | 数组 |
| 38 | 外观数列 | Java & Python | 简单 | 字符串 |
| 48 | 旋转图像 | Java & Python | 中等 | 数组 |
| 53 | 最大子序和 | Java & Python | 简单 | 动态规划 |
| 66 | 加一 | Java & Python | 简单 | 数组 |
| 70 | 爬楼梯 | Java & Python | 简单 | 动态规划 |
| 88 | 合并两个有序数组 | Java & Python | 简单 | 排序和搜索 |
| 98 | 验证二叉搜索树 | Java & Python | 中等 | 树 |
| 101 | 对称二叉树 | Java & Python | 简单 | 树 |
| 102 | 二叉树的层次遍历 | Java & Python | 中等 | 树 |
| 104 | 二叉树的最大深度 | Java & Python | 简单 | 树 |
| 108 | 将有序数组转换为二叉搜索树 | Java & Python | 简单 | 树 |
| 118 | 帕斯卡三角形 | Java & Python | 简单 | 其他 |
| 121 | 买卖股票的最佳时机 | Java & Python | 简单 | 动态规划 |
| 122 | 买卖股票的最佳时机 II | Java & Python | 简单 | 数组 |
| 125 | 验证回文串 | Java & Python | 简单 | 字符串 |
| 136 | 只出现一次的数字 | Java & Python | 简单 | 数组 |
| 141 | 环形链表 | Java & Python | 简单 | 链表 |
| 155 | 最小栈 | Java & Python | 简单 | 设计问题 |
| 189 | 旋转数组 | Java & Python | 简单 | 数组 |
| 190 | 颠倒二进制位 | Java & Python | 简单 | 其他 |
| 191 | 位1的个数 | Java & Python | 简单 | 其他 |
| 198 | 打家劫舍 | Java & Python | 简单 | 动态规划 |
| 204 | 计数质数 | Java & Python | 简单 | 数学 |
| 206 | 反转链表 | Java & Python | 简单 | 链表 |
| 217 | 存在重复元素 | Java & Python | 简单 | 数组 |
| 234 | 回文链表 | Java & Python | 简单 | 链表 |
| 237 | 删除链表中的节点 | Java & Python | 简单 | 链表 |
| 242 | 有效的字母异位词 | Java & Python | 简单 | 字符串 |
| 268 | 缺失数字 | Java & Python | 简单 | 其他 |
| 278 | 第一个错误的版本 | Java & Python | 简单 | 排序和搜索 |
| 283 | 移动零 | Java & Python | 简单 | 数组 |
| 326 | 3的幂 | Java & Python | 简单 | 数学 |
| 344 | 反转字符串 | Java & Python | 简单 | 字符串 |
| 350 | 两个数组的交集 II | Java & Python | 简单 | 数组 |
| 384 | 打乱数组 | Java & Python | 中等 | 设计问题 |
| 387 | 字符串中的第一个唯一字符 | Java & Python | 简单 | 字符串 |
| 412 | Fizz Buzz | Java & Python | 简单 | 数学 |
| 461 | 汉明距离 | Java & Python | 简单 | 其他 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 2 | 两数相加 | Java & Python | 中等 | 链表 |
| 3 | 无重复字符的最长子串 | Java & Python | 中等 | 数组和字符串 |
| 5 | 最长回文子串 | Java & Python | 中等 | 数组和字符串 |
| 15 | 三数之和 | Java & Python | 中等 | 数组和字符串 |
| 17 | 电话号码的字母组合 | Java & Python | 中等 | 回溯算法 |
| 22 | 括号生成 | Java & Python | 中等 | 回溯算法 |
| 29 | 两数相除 | Java & Python | 中等 | 数学 |
| 33 | 搜索旋转排序数组 | Java & Python | 中等 | 排序和搜索 |
| 34 | 在排序数组中查找元素的第一个和最后一个位置 | Java & Python | 中等 | 排序和搜索 |
| 46 | 全排列 | Java & Python | 中等 | 回溯算法 |
| 49 | 字母异位词分组 | Java & Python | 中等 | 数组和字符串 |
| 50 | Pow(x, n) | Java & Python | 中等 | 数学 |
| 55 | 跳跃游戏 | Java & Python | 中等 | 动态规划 |
| 56 | 合并区间 | Java & Python | 中等 | 排序和搜索 |
| 62 | 不同路径 | Java & Python | 中等 | 动态规划 |
| 69 | x的平方根 | Java & Python | 简单 | 数学 |
| 73 | 矩阵置零 | Java & Python | 中等 | 数组和字符串 |
| 75 | 颜色分类 | Java & Python | 中等 | 排序和搜索 |
| 78 | 子集 | Java & Python | 中等 | 回溯算法 |
| 79 | 单词搜索 | Java & Python | 中等 | 回溯算法 |
| 94 | 二叉树的中序遍历 | Java & Python | 中等 | 树和图 |
| 103 | 二叉树的锯齿形层次遍历 | Java & Python | 中等 | 树和图 |
| 105 | 从前序与中序遍历序列构造二叉树 | Java & Python | 中等 | 树和图 |
| 116 | 填充每个节点的下一个右侧节点指针 | Java & Python | 中等 | 树和图 |
| 150 | 逆波兰表达式求值 | Java & Python | 中等 | 其他 |
| 160 | 相交链表 | Java & Python | 简单 | 链表 |
| 162 | 寻找峰值 | Java & Python | 中等 | 排序和搜索 |
| 166 | 分数到小数 | Java & Python | 中等 | 数学 |
| 169 | 多数元素 | Java & Python | 简单 | 其他 |
| 171 | Excel表列序号 | Java & Python | 简单 | 数学 |
| 172 | 阶乘后的零 | Java & Python | 简单 | 数学 |
| 200 | 岛屿数量 | Java & Python | 中等 | 树和图 |
| 202 | 快乐数 | Java & Python | 简单 | 数学 |
| 215 | 数组中的第K个最大元素 | Java & Python | 中等 | 排序和搜索 |
| 230 | 二叉搜索树中第K小的元素 | Java & Python | 中等 | 树和图 |
| 240 | 搜索二维矩阵 II | Java & Python | 中等 | 排序和搜索 |
| 297 | 二叉树的序列化与反序列化 | Java & Python | 困难 | 设计问题 |
| 300 | 最长上升子序列 | Java & Python | 中等 | 动态规划 |
| 322 | 零钱兑换 | Java & Python | 中等 | 动态规划 |
| 328 | 奇偶链表 | Java & Python | 中等 | 链表 |
| 334 | 递增的三元子序列 | Java & Python | 中等 | 数组和字符串 |
| 347 | 前K个高频元素 | Java & Python | 中等 | 排序和搜索 |
| 371 | 两整数之和 | Java & Python | 简单 | 其他 |
| 380 | 常数时间插入、删除和获取随机元素 | Java & Python | 中等 | 设计问题 |
| 621 | 任务调度器 | Java & Python | 中等 | 其他 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 4 | 寻找两个有序数组的中位数 | Java & Python | 困难 | 排序和搜索 |
| 10 | 正则表达式匹配 | Java & Python | 困难 | 回溯算法 |
| 11 | 盛最多水的容器 | Java & Python | 中等 | 数组和字符串 |
| 23 | 合并K个排序链表 | Java & Python | 困难 | 链表 |
| 41 | 缺失的第一个正数 | Java & Python | 困难 | 数组和字符串 |
| 42 | 接雨水 | Java & Python | 困难 | 其他 |
| 44 | 通配符匹配 | Java & Python | 困难 | 回溯算法 |
| 54 | 螺旋矩阵 | Java & Python | 中等 | 数组和字符串 |
| 76 | 最小覆盖子串 | Java & Python | 困难 | 数组和字符串 |
| 84 | 柱状图中最大的矩形 | Java & Python | 困难 | 其他 |
| 91 | 解码方法 | Java & Python | 中等 | 动态规划 |
| 124 | 二叉树中的最大路径和 | Java & Python | 困难 | 树和图 |
| 127 | 单词接龙 | Java & Python | 中等 | 树和图 |
| 128 | 最长连续序列 | Java & Python | 困难 | 数组和字符串 |
| 130 | 被围绕的区域 | Java & Python | 中等 | 树和图 |
| 131 | 分割回文串 | Java & Python | 中等 | 回溯算法 |
| 138 | 复制带随机指针的链表 | Java & Python | 中等 | 链表 |
| 139 | 单词拆分 | Java & Python | 中等 | 动态规划 |
| 140 | 单词拆分 II | Java & Python | 困难 | 动态规划 |
| 146 | LRU缓存机制 | Java & Python | 中等 | 设计问题 |
| 148 | 排序链表 | Java & Python | 中等 | 链表 |
| 149 | 直线上最多的点数 | Java & Python | 困难 | 数学 |
| 152 | 乘积最大子序列 | Java & Python | 中等 | 动态规划 |
| 179 | 最大数 | Java & Python | 中等 | 数学 |
| 207 | 课程表 | Java & Python | 中等 | 树和图 |
| 208 | 实现 Trie (前缀树) | Java & Python | 中等 | 设计问题 |
| 210 | 课程表 II | Java & Python | 中等 | 树和图 |
| 212 | 单词搜索 II | Java & Python | 困难 | 回溯算法 |
| 218 | 天际线问题 | Java & Python | 困难 | 其他 |
| 227 | 基本计算器 II | Java & Python | 中等 | 数组和字符串 |
| 236 | 二叉树的最近公共祖先 | Java & Python | 中等 | 树和图 |
| 238 | 除自身以外数组的乘积 | Java & Python | 中等 | 数组和字符串 |
| 239 | 滑动窗口最大值 | Java & Python | 困难 | 数组和字符串 |
| 279 | 完全平方数 | Java & Python | 中等 | 动态规划 |
| 287 | 寻找重复数 | Java & Python | 中等 | 数组和字符串 |
| 289 | 生命游戏 | Java & Python | 中等 | 数组和字符串 |
| 295 | 数据流的中位数 | Java & Python | 困难 | 设计问题 |
| 301 | 删除无效的括号 | Java & Python | 困难 | 回溯算法 |
| 309 | 最佳买卖股票时机含冷冻期 | Java & Python | 中等 | 动态规划 |
| 312 | 戳气球 | Java & Python | 困难 | 动态规划 |
| 315 | 计算右侧小于当前元素的个数 | Java & Python | 困难 | 树和图 |
| 324 | 摆动排序 II | Java & Python | 中等 | 排序和搜索 |
| 329 | 矩阵中的最长递增路径 | Java & Python | 困难 | 树和图 |
| 341 | 扁平化嵌套列表迭代器 | Java & Python | 中等 | 设计问题 |
| 378 | 有序矩阵中第K小的元素 | Java & Python | 中等 | 排序和搜索 |
| 406 | 根据身高重建队列 | Java & Python | 中等 | 其他 |
| 454 | 四数相加 II | Java & Python | 中等 | 数组和字符串 |
| 547 | 朋友圈 | Java & Python | 中等 | 树和图 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 2 | 两数相加 | Java & Python | 中等 | 链表与树 |
| 3 | 无重复字符的最长子串 | Java & Python | 中等 | 挑战字符串 |
| 14 | 最长公共前缀 | Java & Python | 简单 | 挑战字符串 |
| 15 | 三数之和 | Java & Python | 中等 | 数组与排序 |
| 21 | 合并两个有序链表 | Java & Python | 简单 | 链表与树 |
| 23 | 合并K个排序链表 | Java & Python | 困难 | 链表与树 |
| 33 | 搜索旋转排序数组 | Java & Python | 中等 | 数组与排序 |
| 42 | 接雨水 | Java & Python | 困难 | 数组与排序 |
| 43 | 字符串相乘 | Java & Python | 中等 | 挑战字符串 |
| 53 | 最大子序和 | Java & Python | 简单 | 动态或贪心 |
| 56 | 合并区间 | Java & Python | 中等 | 数组与排序 |
| 60 | 第k个排列 | Java & Python | 中等 | 数组与排序 |
| 69 | x的平方根 | Java & Python | 简单 | 拓展练习 |
| 71 | 简化路径 | Java & Python | 中等 | 挑战字符串 |
| 93 | 复原IP地址 | Java & Python | 中等 | 挑战字符串 |
| 103 | 二叉树的锯齿形层次遍历 | Java & Python | 中等 | 链表与树 |
| 120 | 三角形最小路径和 | Java & Python | 中等 | 动态或贪心 |
| 121 | 买卖股票的最佳时机 | Java & Python | 简单 | 动态或贪心 |
| 122 | 买卖股票的最佳时机 II | Java & Python | 简单 | 动态或贪心 |
| 128 | 最长连续序列 | Java & Python | 困难 | 数组与排序 |
| 142 | 环形链表 II | Java & Python | 中等 | 链表与树 |
| 146 | LRU缓存机制 | Java & Python | 中等 | 数据结构 |
| 148 | 排序链表 | Java & Python | 中等 | 链表与树 |
| 151 | 翻转字符串里的单词 | Java & Python | 中等 | 挑战字符串 |
| 155 | 最小栈 | Java & Python | 简单 | 数据结构 |
| 160 | 相交链表 | Java & Python | 简单 | 链表与树 |
| 176 | 第二高的薪水 | MySQL | 简单 | 拓展练习 |
| 206 | 反转链表 | Java & Python | 简单 | 链表与树 |
| 215 | 数组中的第K个最大元素 | Java & Python | 中等 | 数组与排序 |
| 221 | 最大正方形 | Java & Python | 中等 | 动态或贪心 |
| 236 | 二叉树的最近公共祖先 | Java & Python | 中等 | 链表与树 |
| 354 | 俄罗斯套娃信封问题 | Java & Python | 困难 | 动态或贪心 |
| 393 | UTF-8 编码验证 | Java & Python | 中等 | 拓展练习 |
| 432 | 全 O(1) 的数据结构 | Java & Python | 困难 | 数据结构 |
| 547 | 朋友圈 | Java & Python | 中等 | 数组与排序 |
| 567 | 字符串的排列 | Java & Python | 中等 | 挑战字符串 |
| 674 | 最长连续递增序列 | Java & Python | 简单 | 数组与排序 |
| 695 | 岛屿的最大面积 | Java & Python | 中等 | 数组与排序 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 1 | 两数之和 | Java & Python | 简单 | 数组与字符串 |
| 2 | 两数相加 | Java & Python | 中等 | 链表突击 |
| 4 | 寻找两个有序数组的中位数 | Java & Python | 困难 | 数组与字符串 |
| 5 | 最长回文子串 | Java & Python | 中等 | 数组和字符串 |
| 7 | 整数反转 | Java & Python | 简单 | 数学与数字 |
| 8 | 字符串转换整数(atoi) | Java & Python | 中等 | 数组与字符串 |
| 9 | 回文数 | Java & Python | 简单 | 数学与数字 |
| 11 | 盛最多水的容器 | Java & Python | 中等 | 数组与字符串 |
| 14 | 最长公共前缀 | Java & Python | 简单 | 数组与字符串 |
| 15 | 三数之和 | Java & Python | 中等 | 数组与字符串 |
| 16 | 最接近的三数之和 | Java & Python | 中等 | 数组与字符串 |
| 20 | 有效的括号 | Java & Python | 简单 | 数组与字符串 |
| 21 | 合并两个有序链表 | Java & Python | 简单 | 链表突击 |
| 22 | 括号生成 | Java & Python | 中等 | 回溯算法 |
| 23 | 合并K个排序链表 | Java & Python | 困难 | 链表突击 |
| 26 | 删除排序数组中的重复项 | Java & Python | 简单 | 数组与字符串 |
| 33 | 搜索旋转排序数组 | Java & Python | 中等 | 排序与搜索 |
| 43 | 字符串相乘 | Java & Python | 中等 | 数组与字符串 |
| 46 | 全排列 | Java & Python | 中等 | 回溯算法 |
| 53 | 最大子序和 | Java & Python | 简单 | 动态规划 |
| 54 | 螺旋矩阵 | Java & Python | 中等 | 数组和字符串 |
| 59 | 螺旋矩阵 II | Java & Python | 中等 | 数组和字符串 |
| 61 | 旋转链表 | Java & Python | 中等 | 链表突击 |
| 62 | 不同路径 | Java & Python | 中等 | 动态规划 |
| 70 | 爬楼梯 | Java & Python | 简单 | 动态规划 |
| 78 | 子集 | Java & Python | 中等 | 回溯算法 |
| 88 | 合并两个有序数组 | Java & Python | 简单 | 数组和字符串 |
| 89 | 格雷编码 | Java & Python | 中等 | 回溯算法 |
| 104 | 二叉树的最大深度 | Java & Python | 简单 | 排序与搜索 |
| 121 | 买卖股票的最佳时机 | Java & Python | 简单 | 动态规划 |
| 122 | 买卖股票的最佳时机 II | Java & Python | 简单 | 动态规划 |
| 124 | 二叉树中的最大路径和 | Java & Python | 困难 | 排序与搜索 |
| 136 | 只出现一次的数字 | Java & Python | 简单 | 数学与数字 |
| 141 | 环形链表 | Java & Python | 简单 | 链表突击 |
| 142 | 环形链表 II | Java & Python | 中等 | 链表突击 |
| 146 | LRU缓存机制 | Java & Python | 中等 | 设计 |
| 148 | 排序链表 | Java & Python | 中等 | 排序与搜索 |
| 155 | 最小栈 | Java & Python | 简单 | 设计 |
| 160 | 相交链表 | Java & Python | 简单 | 链表突击 |
| 169 | 多数元素 | Java & Python | 简单 | 数学与数字 |
| 206 | 反转链表 | Java & Python | 简单 | 链表突击 |
| 215 | 数组中的第K个最大元素 | Java & Python | 中等 | 排序与搜索 |
| 217 | 存在重复元素 | Java & Python | 简单 | 数组和字符串 |
| 230 | 二叉搜索树中第K小的元素 | Java & Python | 中等 | 排序与搜索 |
| 231 | 2的幂 | Java & Python | 简单 | 数学与数字 |
| 235 | 二叉搜索树的最近公共祖先 | Java & Python | 简单 | 排序与搜索 |
| 236 | 二叉树的最近公共祖先 | Java & Python | 中等 | 排序与搜索 |
| 237 | 删除链表中的节点 | Java & Python | 简单 | 链表突击 |
| 238 | 除自身以外数组的乘积 | Java & Python | 中等 | 数组和字符串 |
| 292 | Nim 游戏 | Java & Python | 简单 | 附加 |
| 344 | 反转字符串 | Java & Python | 简单 | 数组和字符串 |
| 557 | 反转字符串中的单词 III | Java & Python | 简单 | 数组和字符串 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 369 | 单链表加1 | Java & Python | 中等 | 链表 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 168 | Excel表列名称 | Java & Python | 简单 | 数学 |
| 171 | Excel表列序号 | Java & Python | 简单 | 数学 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 2 | 两数相加 | Java & Python | 中等 | 链表 |
| 43 | 字符串相乘 | Java & Python | 中等 | 字符串 |
| 74 | 搜索二维矩阵 | Java & Python | 中等 | 数组 |
| 108 | 将有序数组转换为二叉搜索树 | Java & Python | 简单 | 树 |
| 109 | 有序链表转换二叉搜索树 | Java & Python | 中等 | 树 |
| 240 | 搜索二维矩阵 II | Java & Python | 中等 | 数组 |
| 415 | 字符串相加 | Java & Python | 简单 | 字符串 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 19 | 删除链表的倒数第N个节点 | Java & Python | 中等 | 链表 |
| 203 | 移除链表元素 | Java & Python | 简单 | 链表 |
| 215 | 数组中的第K个最大元素 | Java & Python | 中等 | 排序和搜索 |
| 230 | 二叉搜索树中第K小的元素 | Java & Python | 中等 | 排序与搜索 |
| 378 | 有序矩阵中第K小的元素 | Java & Python | 中等 | 排序和搜索 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| 第一天 | 最长公共前缀 | Java | 简单 | 字符串简介 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| A | 解密 | Java | 简单 | |
| B | 纪念日 | Java | 简单 | |
| C | 合并检测 | Java | 简单 | |
| D | 分配口罩 | Java | 简单 | |
| E | 斐波那契数列最大公约数 | Java | 简单 | |
| F | 分类计数 | Java | 简单 | |
| G | 八次求和 | Java | 简单 | |
| H | 字符串编码 | Java | 简单 | |
| I | BST 插入节点问题 | Java | 简单 | |
| J | 网络分析 | Java | 简单 |
| # | 题名 | 题解 | 难度 | 标签 |
|---|---|---|---|---|
| A | 计算机存储中有多少字节 | Java | 简单 | |
| B | 合法括号序列 | Java | 简单 | |
| C | 无向连通图最少包含多少条边 | Java | 简单 | |
| D | 字母重新排列 | Java | 简单 | |
| E | 凯撒密码加密 | Java | 简单 | |
| F | 反倍数 | Java | 简单 | |
| G | 正整数的摆动序列 | Java | 简单 | |
| H | 螺旋矩阵 | Java | 简单 | |
| I | 小明植树 | Java | 简单 | |
| J | 户户通电 | Java | 简单 |
