个人主页
数据结构与算法
1.
排序
1.1.
冒泡排序
1.2.
选择排序
1.3.
插入排序
1.4.
Shell排序
1.5.
快速排序
1.6.
归并排序
1.7.
比较
2.
链表
2.1.
与数组比较
2.2.
链表相关LeetCode
2.2.1.
206 反转链表
2.2.2.
92 反转链表II
2.2.3.
2 两数相加
2.2.4.
445 两数相加II
2.2.5.
21 合并两个有序链表
2.2.6.
141 环形链表
2.2.7.
142 环形链表II
2.2.8.
160 两个链表的第一公共结点
2.2.9.
234 回文链表
2.2.10.
剑指offer22 链表中倒数第k个节点
3.
堆栈
3.1.
堆
3.2.
栈
4.
树
4.1.
二叉树
4.2.
平衡树
4.2.1.
平衡二叉树AVL
4.2.2.
B树
4.2.3.
B+树
5.
算法及LeetCode题
5.1.
二分查找
5.1.1.
找到先增后减的数组最大值
5.2.
数组
5.2.1.
189 旋转数组
5.2.2.
283 移动零
5.2.3.
27 移除元素
5.2.4.
26 删除数组中的重复项
5.2.5.
80 删除数组中的重复项II
5.2.6.
75 颜色分类
5.2.7.
88 合并两个有序数组
5.2.8.
215 数组中的第K个最大元素
5.2.9.
1 两数之和
5.2.10.
167 两数之和II
5.2.11.
653 两数之和 IV - 输入BST
5.2.12.
16 三数之和
5.2.13.
18 四数之和
5.2.14.
125 验证回文串
5.2.15.
344 反转字符串
5.2.16.
345 反转字符串中的元音字母
5.2.17.
977 有序数组的平方
5.2.18.
633 平方数之和
5.2.19.
680 验证回文字符串II
5.2.20.
524 通过删除字母匹配到字典里最长单词
5.2.21.
20 有效的括号
5.2.22.
392 判断子序列
5.2.23.
263 丑数
5.2.24.
264 丑数II
5.2.25.
数组中找到一个(>=左侧)并且(<=右侧)的数
5.2.26.
建物流中转站
5.2.27.
54 螺旋矩阵
5.2.28.
59 螺旋矩阵 II
5.2.29.
410 分割数组的最大值
5.3.
滑动窗口
5.3.1.
209 长度最小的子数组
5.3.2.
3 无重复字符的最长字串
5.3.3.
438 找到字符串中的所有字母异位词
5.3.4.
567 字符串的排列
5.4.
递归
5.4.1.
31 下一个排列
5.4.2.
46 全排列
5.4.3.
47 全排列II
5.4.4.
39 组合总和
5.4.5.
40 组合总和
5.4.6.
322 零钱兑换
5.4.7.
518 零钱兑换II
5.4.8.
17 电话号码的字母组合
5.4.9.
79 单词搜索
5.5.
动态规划
5.5.1.
509 斐波那契数
5.5.2.
416 分割等和子集
5.5.3.
53 最大子序和
5.5.4.
152 乘积最大子数组
5.5.5.
300 最长上升子序列
5.5.6.
1143 最长公共子序列
5.5.7.
120 三角形最小路径和
5.5.8.
198 打家劫舍
5.5.9.
213 打家劫舍II
5.5.10.
11 盛最多的水的容器
5.5.11.
121 买卖股票的最佳时机
5.5.12.
122 买卖股票的最佳时机II
5.5.13.
123 买卖股票的最佳时机III
5.5.14.
188 买卖股票的最佳时机IV
5.5.15.
714 买卖股票的最佳时机含手续费
5.5.16.
516 最长回文子序列
5.5.17.
279 完全平方数
5.5.18.
剑指60 n个骰子的点数
5.5.19.
72 编辑距离
5.5.20.
1411 给N*3网格涂色的方案数
5.5.21.
44 通配符匹配
5.5.22.
10 正则表达式匹配
5.6.
贪心算法
5.7.
分治算法
5.7.1.
大数相乘
Published with GitBook
数据结构与算法
堆
堆是具有以下性质的完全二叉树:
每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;
每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。