| id | 题目 | 语言 | 题解链接 | 
|---|---|---|---|
| 03 | 数组中重复的数字 | C++、Java | 题解 | 
| 04 | 二维数组中的查找 | Java、Python | 题解 | 
| 05 | 替换空格 | Java、Python | 题解 | 
| 06 | 从尾到头打印链表 | C++、Python | 题解 | 
| 07 | 重建二叉树 | Java、Python | 题解 | 
| 09 | 用两个栈实现队列 | C++、Python | 题解 | 
| 10-1 | 斐波那契数列 | C++、Python | 题解 | 
| 10-2 | 青蛙跳台阶 | C++、Python | 题解 | 
| 11 | 旋转数组的最小数字 | C++、Python | 题解 | 
| 12 | 矩阵中的路径 | Python | 题解 | 
| 13 | 机器人的运动范围 | Python | 题解 | 
| 14-1 | 剪绳子 | Python | 题解 | 
| 14-2 | 剪绳子(大数取余) | Python | 题解 | 
| 15 | 二进制中1的个数 | Python | 题解 | 
| 16 | 数值的整数次方 | Python | 题解 | 
| 17 | 打印从1到最大的n位数 | Python | 题解 | 
| 18 | 删除链表的节点 | Python | 题解 | 
| 21 | 调整数组使奇数位于偶数前面 | Python | 题解 | 
| 22 | 链表中倒数第k个节点 | Python、Java | 题解 | 
| 24 | 反转链表 | Python、Java | 题解 | 
| 25 | 合并两个有序链表 | Python、Java | 题解 | 
| 27 | 二叉树的镜像 | Python | 题解 | 
| 26 | 树的子结构 | Python | 题解 | 
| 28 | 对称的二叉树 | Python | 题解 | 
| 29 | 顺时针打印矩阵 | Python | 题解 | 
| 30 | 包含min函数的栈 | Python | 题解 | 
| 31 | 栈的压入及弹出序列 | Python | 题解 | 
| 32-1 | 从上到下打印二叉树 | Python | 题解 | 
| 32-2 | 从上到下打印二叉树2 | Python | 题解 | 
| 32-3 | 从上到下打印二叉树3 | Python | 题解 | 
| 33 | 二叉树搜索树的后序遍历序列 | Python | 题解 | 
| 34 | 二叉树中和为某一值的路径 | Python | 题解 | 
| 35 | 复杂链表的复制 | Python | 题解 | 
| 36 | 二叉搜索树与双向链表 | Python | 题解 | 
| 37 | 二叉树的序列化与反序列化 | Python | 题解 | 
| 38 | 字符串的排列 | Python | 题解 | 
| 39 | 数组中出现次数超过一半的数字 | Python | 题解 | 
| 40 | 最小的k个数 | Python | 题解 | 
| 42 | 连续子数组的最大和 | Python | 题解 | 
| 43 | 1~n整数中1出现的次数 | Python | 题解 | 
| 45 | 把数组排成最小的数 | Python | 题解 | 
| 46 | 数字翻译成字符串 | Python | 题解 | 
| 47 | 礼物的最大值 | Python | 题解 | 
| 48 | 最长不重复子串的长度 | Python | 题解 | 
| 49 | 丑数 | Python | 题解 | 
| 50 | 第一个只出现一次的字符 | Python | 题解 | 
| 51 | 数组中的逆序对 | Python | 题解 | 
| 52 | 两个链表的第一个公共结点 | Python | 题解 | 
| 53-1 | 在排序数组中查找数字1 | Python | 题解 | 
| 53-2 | 0~n-1中缺失的数字 | Python | 题解 | 
| 54 | 二叉搜索树的第k大结点 | Python | 题解 | 
| 55-1 | 二叉树的深度 | Python | 题解 | 
| 55-2 | 平衡二叉树 | Python | 题解 | 
| 56-1 | 数组中数字出现的次数 | Python | 题解 | 
| 56-2 | 数组中数字出现的次数2 | Python | 题解 | 
| 57 | 和为s的两个数字 | Python | 题解 | 
| 57-2 | 和为s的连续正数序列 | Python | 题解 | 
| 58-1 | 翻转单词顺序 | Python | 题解 | 
| 58-2 | 左旋转字符串 | Python | 题解 | 
| 59-1 | 滑动窗口的最大值 | Python | 题解 | 
| 59-2 | 队列的最大值 | Python | 题解 | 
| 60 | n个骰子的点数 | Python | 题解 | 
| 61 | 扑克牌中的顺子 | Python | 题解 | 
| 62 | 圆圈中最后剩下的数字 | Python | 题解 | 
| 63 | 股票的最大利润 | Python | 题解 | 
| 64 | 求1+2+...+n | Python | 题解 | 
| 65 | 不用加减乘除做加法 | Java | 题解 | 
| 66 | 构建乘积数组 | Python | 题解 | 
| 67 | 把字符串转换为整数 | Python | 题解 | 
| 68-1 | 二叉搜索树最近公共祖先 | Python | 题解 | 
| 68-2 | 二叉树最近公共祖先 | Python | 题解 | 
| id | 题目 | 语言 | 题解链接 | 
|---|---|---|---|
| 1 | 设计一个含有getMin功能的栈 | Python | q1.py | 
| 2 | 由两个栈组成的队列 | Python | q2.py | 
| 3 | 仅用递归函数和栈操作来逆序栈 | Python | q3.py | 
| 4 | 猫狗队列 | Python | q4.py | 
| 5 | 用一个栈实现另一个栈的排序 | Python | q5.py | 
| 7 | 生成窗口最大值数组 | Python | q7.py | 
| 8 | 单调栈问题 | Python | q8.py | 
| # | 栈和排序 | Python | stackRank.py | 
| id | 题目 | 语言 | 题解链接 | 
|---|---|---|---|
| 1 | 打印两个有序链表的公共部分 | Python | q1.py | 
| 2 | 在单链表和双链表中删除倒数第k个结点 | Python | q2.py | 
| 3 | 删除链表的中间节点和a/b处的节点 | Python | q3.py | 
| 4 | 反转单向链表和反转双向链表 | Python | q4.py | 
| 5 | 反转单向链表中第from到to个节点 | Python | q5.py | 
| 6 | 约瑟夫环形链表 | Python | q6.py | 
| 7 | 判断链表是否为回文结构 | Python | q7.py | 
| 9 | 复制含有随机指针的链表 | Python | q9.py | 
| 10 | 两个单链表生成相加链表 | Python | q10.py | 
| 12 | 将单链表的每k个节点之间逆序 | Python | q12.py | 
| 13 | 删除无序单链表中值重复出现的节点 | Python | q13.py | 
| 14 | 删除单链表中指定值的节点 | Python | q14.py | 
| 15 | 搜索二叉树转为有序双向链表 | Python | q15.py | 
| 16 | 单链表的选择排序 | Python | q16.py | 
| 17 | 删除单链表中指定节点 | Python | q17.py | 
| 18 | 向有序单链表插入新节点 | Python | q18.py | 
| 19 | 合并两个有序单链表 | Python | q19.py | 
| 20 | 按照左右半区的方式重新组合单链表 | Python | q20.py | 
| 21 | 单链表的归并排序 | Python | q21.py | 
| # | 合并K个有序链表 | Python | merge_k_lists.py | 
| # | 删除链表中重复的元素 | Python | delete_chongfu.py | 
| # | 判断链表是否有环 | Python | detectCycle_1.py | 
| # | 链表中环的入口结点 | Python | detectCycle_2.py | 
| # | 两个链表的第一个公共结点 | Python | detectCycle_3.py | 
| # | 链表的奇偶重排 | Python | oddeven.py | 
| # | 重排链表 | Python | headtail.py | 
| # | 划分链表 | Python | segList.py | 
| id | 题目 | 语言 | 题解链接 | 
|---|---|---|---|
| 1 | 递归和非递归实现二叉树先中后序遍历 | Python | q1.py | 
| 2 | 打印二叉树的边界节点 | Python | q2.py | 
| 3 | 直观打印二叉树 | Python | q3.py | 
| 4 | 二叉树的序列化和反序列化 | Python | q4.py | 
| 7 | 找到二叉树中最大的搜索二叉树 | Python | q7.py | 
| 9 | 二叉树的按层打印和ZigZag打印 | Python | q9.py | 
| 10 | 查找搜索二叉树中两个错误的节点 | Python | q10.py | 
| 11 | 判断t1树是否包含t2树全部的拓扑结构 | Python | q11.py | 
| 13 | 判断二叉树是否为平衡二叉树 | Python | q13.py | 
| 14 | 根据后序数组重建搜索二叉树 | Python | q14.py | 
| 15 | 验证搜索二叉树和完全二叉树 | Python | q15.py | 
| 16 | 通过有序数组生成平衡搜索二叉树 | Python | q16.py | 
| 17 | 在二叉树中找到一个节点的后继节点 | Python | q17.py | 
| 18 | 在二叉树中找到两个节点的最近公共祖先节点 | Python | q18.py | 
| 20 | 二叉树节点间的最大距离 | Python | q20.py | 
| 24 | 统计完全二叉树节点的数目 | Python | q24.py | 
| # | 前序和中序重建二叉树 | Python | rebuild_tree.py | 
| # | 打印二叉树右视图 | Python | print_right_tree.py | 
| # | 二叉树深度 | Python | tree_depth.py | 
| # | 二叉树路径所有代表数字的和 | Python | all_roads_num_sum.py | 
| # | 二叉树根到叶子节点目标和的路径 | Python | root_leaf_sum.py | 
| # | 二叉树中是否存在节点和为指定值的路径 | Python | is_root_leaf_sum.py | 
| # | 二叉树的最大路径和 | Python | max_road_sum.py | 
| # | 判断二叉树是否对称 | Python | is_duichen.py | 
| # | 二叉树的镜像 | Python | mirrortree.py | 
| id | 题目 | 语言 | 题解链接 | 
|---|---|---|---|
| 2 | 矩阵中的最小路径和 | Python | q2.py | 
| 3 | 换钱的最少货币数 | Python | q3.py | 
| 4 | 机器人到达位置方法数 | Python | q4.py | 
| 7 | 最长递增子序列 | Python | q7.py | 
| 8 | 信封嵌套问题 | Python | q8.py | 
| 9 | 汉诺塔问题 | Python | q9.py | 
| 10 | 最长公共子序列 | Python | q10.py | 
| 11 | 最长公共子串 | Python | q11.py | 
| 13 | 最小编辑代价 | Python | q13.py | 
| # | 编辑距离 | Python | bjjl.py | 
| 19 | 跳跃游戏 | Python | q19.py | 
| 20 | 数组中最长连续序列 | Python | q20.py | 
| 22 | 最长回文子串 | Python | q22.py | 
| # | 背包问题 | Python | bag1.py | 
| # | 最大正方形 | Python | zdzfx.py | 
| id | 题目 | 语言 | 题解链接 | 
|---|---|---|---|
| 1 | 顺时针螺旋打印矩阵 | Python | q1.py | 
| 2 | 顺时针旋转矩阵 | Python | q2.py | 
| 5 | 需要排序的最短子数组长度 | Python | q5.py | 
| 7 | 在行列有序矩阵中查找指定数 | Python | q7.py | 
| 8 | 最长的可整合数组的长度 | Python | q8.py | 
| 9 | 打印排序数组中相加和为给定值的二元三元组 | Python | q9.py | 
| 10 | 未排序正数数组中累加和为给定值的最长子数组长度 | Python | q10.py | 
| 11 | 未排序数组中累加和为给定值的最长子数组长度 | Python | q11.py | 
| 14 | 自然数数组的排序 | Python | q14.py | 
| 15 | 奇数下标都是奇数或者偶数下标都是偶数 | Python | q15.py | 
| 16 | 子数组的最大累加和问题 | Python | q16.py | 
| 17 | 子矩阵的最大累加和问题 | Python | q17.py | 
| 18 | 在数组中找到一个局部最小位置 | Python | q18.py | 
| 19 | 数组中子数组的最大累乘积 | Python | q19.py | 
| 22 | 不包含本位置值的累乘数组 | Python | q22.py | 
| 25 | 数组中未出现的最小正整数 | Python | q25.py | 
| 31 | 容器盛水问题 | Python | q31.py | 
| # | 二分查找目标值(无重复) | Python | efcz1.py | 
| # | 二分查找第一个等于目标值的下标 | Python | efcz2.py | 
| # | 二分查找是否存在和为目标值的两个数 | Python | efcz3.py | 
| # | 合并两个有序数组 | Python | merge2arr.py | 
| # | 螺旋矩阵 | Python | lxmatrix.py | 
| # | 升序数组中数字出现的次数 | Python | numcishu.py | 
| # | 相加和为0的三元组 | Python | threenum.py | 
| # | 转动过的数组中查找目标值 | Python | bstarget.py | 
| # | 在行列有序矩阵中查找指定数2 | Python | maserch.py | 
| # | 数组中未出现的最小正整数 | Python | mindisappear.py | 
| # | 矩阵最长递增路径 | Python | jzzcdzlj.py | 
| # | 旋转数组 | Python | xzsz.py | 
| # | 矩阵乘法 | Python | jzcf.py | 
| id | 题目 | 语言 | 题解链接 | 
|---|---|---|---|
| 7 | 岛屿的个数 | Python | q7.py | 
| id | 题目 | 语言 | 题解链接 | 
|---|---|---|---|
| 6 | 在其它数都出现k次的数组中找到只出现1次的数 | Python | q6.py | 
| id | 题目 | 语言 | 题解链接 | 
|---|---|---|---|
| 1 | 判断两个字符串是否为变形词 | Python | q1.py | 
| 2 | 判断两个字符串是否互为旋转词 | Python | q2.py | 
| 3 | 将整数字符串转为整数值 | Python | q3.py | 
| 4 | 字符串的统计字符串 | Python | q4.py | 
| 5 | 判断字符数组中是否所有的字符都只出现过一次 | Python | q5.py | 
| 6 | 在有序但有空的数组中查找字符串 | Python | q6.py | 
| 7 | 字符串的调整与替换 | Python | q7.py | 
| 8 | 翻转字符串 | Python | q8.py | 
| 10 | 删除多余字符得到字典序最小的字符串 | Python | q10.py | 
| 11 | 数组中两个字符串的最小距离 | Python | q11.py | 
| 19 | 拼接所有字符串产生字典顺序最小的字符串 | Python | q19.py | 
| 20 | 字符串中最长不重复子串长度 | Python | q20.py | 
| 26 | 字典树(前缀树)的实现 | Python | q26.py | 
| # | 字符串数组最长公共前缀 | Python | strarrqz.py | 
| # | 两个字符串代表的整数相加 | Python | strsum.py | 
| # | 字符串逆置大小写转换 | Python | strtrans.py | 
| # | 字符串出现的TopK问题 | Python | strTopk.py | 
| # | 比较版本号 | Python | compare_ver.py | 
| # | 最长重复子串 | Python | most_repeat_str.py | 
| id | 题目 | 语言 | 题解链接 | 
|---|---|---|---|
| 11 | 设计LRU缓存结构 | Python | q11.py | 
| 29 | 在两个长度相等的排序数组中找到上中位数 | Python | q29.py | 
| 32 | 出现次数的TopK问题 | Python | q32.py | 
| # | 堆排序 | Python | heap.py | 
| # | 快速排序 | Python | quick.py | 
| # | 最小k个数 | Python | small_K.py | 
| # | 10进制转N进制 | Python | 10toN.py | 
| # | 求平方根 | Python | sqrt.py | 
| # | 加起来为目标值的组合数 | Python | target_zh.py | 
| # | 括号序列 | Python | khxl.py | 
| # | 括号生成 | Python | khsc.py | 
| # | 翻转数字 | Python | fzsz.py | 
| # | 合并区间 | Python | hbqj.py | 
| # | 缺失数字 | Python | qssz.py | 
| # | 股票(一次交易) | Python | gupiao1.py | 
| # | 股票(两次交易) | Python | gupiao2.py | 
| # | 股票(无限次交易) | Python | gupiao3.py | 
| # | 股票(k次交易) | Python | gupiao4.py | 
| # | 股票(含冷冻期) | Python | gupiao5.py | 
| # | 股票(含手续费) | Python | gupiao6.py | 
| # | 寻找峰值 | Python | xzfz.py | 
| # | 整数集合的子集 | Python | zj.py | 
| # | 二叉搜索树转为排序双向列表 | Python | bstree2list.py | 
| # | 比特位计数 | Python | btnum.py | 
| # | 二分查找 | Python | bisearch.py | 
| # | 大数加法 | Python | bigAdd.py | 
| # | 最大公约数 | Python | maxGys.py | 
| # | 最长连续相同字符子串长度 | Python | max_same_str.py | 
| id | 题目 | 语言 | 题解链接 | 
|---|---|---|---|
| 2 | 两数相加 | Python | 2.py | 
| 3 | 无重复字符的最长子串 | Python | 3.py | 
| 5 | 最长回文子串 | Python | 5.py | 
| 12 | 整数转罗马数字 | Python | 12.py | 
| 17 | 电话号码的字母组合 | Python | 17.py | 
| 19 | 删除链表的倒数第n个结点 | Python | 19.py | 
| 21 | 合并两个有序链表 | Python | 21.py | 
| 22 | 括号生成 | Python | 22.py | 
| 23 | 合并K个升序链表 | Python | 23.py | 
| 31 | 下一个排列* | Python | 31.py | 
| 32 | 最长有效括号 | Python | 32.py | 
| 33 | 搜索旋转排序数组 | Python | 33.py | 
| 34 | 在排序数组中查找元素的第一个和最后一个位置 | Python | 34.py | 
| 39 | 组合总和 | Python | 39.py | 
| 40 | 组合总和II | Python | 40.py | 
| 46 | 全排列 | Python | 46.py | 
| 48 | 旋转图像 | Python | 48.py | 
| 49 | 字母异位词 | Python | 49.py | 
| 53 | 最大子序和 | Python | 53.py | 
| 55 | 跳跃游戏 | Python | 55.py | 
| 56 | 合并区间 | Python | 56.py | 
| 62 | 不同路径 | Python | 62.py | 
| 64 | 最小路径和 | Python | 64.py | 
| 70 | 爬楼梯 | Python | 70.py | 
| 75 | 颜色分类 | Python | 75.py | 
| 78 | 子集 | Python | 78.py | 
| 79 | 单词搜索 | Python | 79.py | 
| 81 | 搜索旋转排序数组2 | Python | 81.py | 
| 94 | 树的中序遍历 | Python | 94.py | 
| 96 | 不同的二叉搜索树 | Python | 96.py | 
| 98 | 验证二叉搜索树 | Python | 98.py | 
| 101 | 对称二叉树 | Python | 101.py | 
| 102 | 二叉树的层次遍历 | Python | 102.py | 
| 104 | 二叉树的最大深度 | Python | 104.py | 
| 105 | 从前序和中序遍历序列构建二叉树 | Python | 105.py | 
| 108 | 将有序数组转换为二叉搜索树 | Python | 108.py | 
| 114 | 二叉树展开为链表* | Python | 114.py | 
| 121 | 买卖股票的最佳时机 | Python | 121.py | 
| 128 | 最长连续序列 | Python | 128.py | 
| 136 | 只出现一次的数字 | Python | 136.py | 
| 139 | 单词拆分 | Python | 139.py | 
| 141 | 环形链表 | Python | 141.py | 
| 142 | 环形链表的环形入口结点 | Python | 142.py | 
| 148 | 排序链表 | Python | 148.py | 
| 152 | 乘积最大子数组 | Python | 152.py | 
| 155 | 最小栈 | Python | 155.py | 
| 160 | 相交链表 | Python | 160.py | 
| 169 | 多数元素 | Python | 169.py | 
| 198 | 打家劫舍 | Python | 198.py | 
| 200 | 岛屿数量 | Python | 200.py | 
| 206 | 反转链表 | Python | 206.py | 
| 207 | 课程表 | Python | 207.py | 
| 208 | 前缀树 | Python | 208.py | 
| 213 | 打家劫舍2 | Python | 213.py | 
| 215 | 数组中的第K个最大元素 | Python | 215.py | 
| 221 | 最大正方形 | Python | 221.py | 
| 226 | 翻转二叉树 | Python | 226.py | 
| 234 | 回文链表 | Python | 234.py | 
| 236 | 二叉树最近公共祖先节点 | Python | 236.py | 
| 238 | 除自身以外数组的乘积* | Python | 338.py | 
| 240 | 搜索二维矩阵2 | Python | 240.py | 
| 279 | 完全平方数 | Python | 279.py | 
| 283 | 移动零 | Python | 283.py | 
| 297 | 二叉树的序列化与反序列化 | Python | 297.py | 
| 300 | 最长递增子序列 | Python | 300.py | 
| 309 | 股票(含冷冻期) | Python | 309.py | 
| 332 | 零钱兑换 | Python | 332.py | 
| 337 | 打家劫舍3 | Python | 337.py | 
| 338 | 比特位计数 | Python | 338.py | 
| 394 | 字符串解码 | Python | 394.py | 
| 399 | 除法求值 | Python | 399.py | 
| 406 | 根据身高重建队列 | Python | 406.py | 
| 416 | 分割等和子集 | Python | 416.py | 
| 437 | 路径总和3 | Python | 437.py | 
| 438 | 找到字符串中的所有字母异位词 | Python | 438.py | 
| 448 | 找到所有数组中消失的数字 | Python | 448.py | 
| 461 | 汉明距离 | Python | 461.py | 
| 538 | 把二叉搜索树转为累加树 | Python | 538.py | 
| 543 | 二叉树的直径 | Python | 543.py | 
| 560 | 和为k的子数组 | Python | 560.py | 
| 581 | 最短无序连续子数组 | Python | 543.py | 
| 617 | 合并二叉树 | Python | 617.py | 
| 647 | 回文子串 | Python | 617.py | 
| 739 | 每日温度 | Python | 739.py | 
| id | 题目 | 语言 | 题解链接 | 
|---|---|---|---|
| 1 | 两数之和 | C++ | 题解笔记 | 
| 7 | 整数反转 | Java | 题解笔记 | 
| 9 | 回文数 | Java | 题解笔记 | 
| 13 | 罗马数字转数字 | Java | 题解笔记 | 
| 14 | 最长公共前缀 | Java | 题解笔记 | 
| 20 | 有效的括号 | Java | 题解笔记 | 
| 21 | 合并两个有序链表 | Java | 题解笔记 | 
| 26 | 删除排序数组中的重复项 | Java | 题解笔记 | 
| 27 | 移除元素 | Java | 题解笔记 | 
| 35 | 搜索插入位置 | Java | 题解笔记 | 
| 38 | 报数 | Java | 题解笔记 | 
| 41 | 缺失的第一个正数 | Python | 41.py | 
| 50 | Pow(x,n) | Python | 题解笔记 | 
| 38 | 报数 | Java | 题解笔记 | 
| 53 | 最大子序和 | Java | 题解笔记 | 
| 54 | 顺时针打印矩阵 | Python | 题解笔记 | 
| 58 | 最后一个单词的长度 | Java | 题解笔记 | 
| 66 | 加一 | Java | 题解笔记 | 
| 67 | 二进制求和 | Java | 题解笔记 | 
| 69 | x的平方根 | Java | 题解笔记 | 
| 70 | 爬楼梯 | Java | 题解笔记 | 
| 79 | 单词搜索 | Python | 题解笔记 | 
| 83 | 删除排序链表中的重复元素 | Java | 题解笔记 | 
| 88 | 合并两个有序数组 | Java | 题解笔记 | 
| 100 | 相同的树 | Java | 题解笔记 | 
| 101 | 对称二叉树 | Java | 题解笔记 | 
| 102 | 二叉树的层次遍历 | Python | 题解笔记 | 
| 105 | 根据前序和中序重建二叉树 | Java、Python | 题解笔记 | 
| 107 | 二叉树的层次遍历 II | Java | 题解笔记 | 
| 108 | 将有序数组转换为二叉搜索树 | Java | 题解笔记 | 
| 110 | 平衡二叉树 | Java | 题解笔记 | 
| 121 | 股票的最大利润 | Python | 题解笔记 | 
| 136 | 只出现一次的数字 | Python | 题解笔记 | 
| 141 | 判断链表中是否有环 | Python | 题解笔记 | 
| 143 | 重排链表 | Python | 143.py | 
| 151 | 翻转字符串的单词 | Python | 题解笔记 | 
| 155 | 最小栈 | Python | 题解笔记 | 
| 160 | 相交链表 | Python | 题解笔记 | 
| 169 | 多数元素 | Python | 题解笔记 | 
| 191 | 位1的个数 | Python | 题解笔记 | 
| 226 | 翻转二叉树 | Python | 题解笔记 | 
| 235 | 二叉搜索树最近公共祖先 | Python | 题解笔记 | 
| 260 | 只出现一次的数字 III | Python | 题解笔记 | 
| 264 | 丑数2 | Python | 题解笔记 | 
| 343 | 整数拆分 | Python | 题解笔记 | 
| 470 | 用Rand7()实现Rand10() | Python | 470.py | 
| 645 | 错误的集合 | Python | 题解笔记 | 
| 946 | 验证栈序列 | Python | 题解笔记 | 
| 994 | 腐烂的橘子 | Python | 994.py | 
| 排序算法 | 平均时间复杂度 | 最差时间复杂度 | 空间复杂度 | 数据对象稳定性 | 
|---|---|---|---|---|
| 冒泡排序 | O(n2) | O(n2) | O(1) | 稳定 | 
| 选择排序 | O(n2) | O(n2) | O(1) | 数组不稳定、链表稳定 | 
| 插入排序 | O(n2) | O(n2) | O(1) | 稳定 | 
| 快速排序 | O(n*log2n) | O(n2) | O(log2n) | 不稳定 | 
| 堆排序 | O(n*log2n) | O(n*log2n) | O(1) | 不稳定 | 
| 归并排序 | O(n*log2n) | O(n*log2n) | O(n) | 稳定 | 
| 希尔排序 | O(n*log2n) | O(n2) | O(1) | 不稳定 | 
| 计数排序 | O(n+m) | O(n+m) | O(n+m) | 稳定 | 
| 桶排序 | O(n) | O(n) | O(m) | 稳定 | 
| 基数排序 | O(k*n) | O(n2) | 稳定 | 
- 均按从小到大排列
 - k:代表数值中的 “数位” 个数
 - n:代表数据规模
 - m:代表数据的最大值减最小值
 
- 牛客
 - leetcode
 - codetop