Hot 100 --- 数据流的中位数
本文讲解数据流的中位数的核心思路:大顶堆存小的一半 + 小顶堆存大的一半,堆顶就是中位数,O(log n) 维护
Hot 100 --- 前 K 个高频元素
本文讲解前 K 个高频元素的核心思路:哈希表统计频率 + 按频率比较的大小为 k 的最小堆,框架复用第 K 大元素,只换比较器
Hot 100 --- 数组中的第K个最大元素
本文讲解数组中的第K个最大元素的核心思路:维护大小为 k 的最小堆,动态保留前 k 大的元素,堆顶即答案,O(n log k)
Hot 100 --- 柱状图中最大的矩形
本文讲解柱状图中最大的矩形的核心思路:用单调递增栈一次遍历找到每根柱子的左右边界,从 O(n²) 降到 O(n)
Hot 100 --- 最小栈
本文讲解最小栈的核心思路:用辅助栈记录每个时刻的最小值,实现 O(1) 获取最小值
Hot 100 --- 有效的括号
本文讲解有效的括号的核心思路:用栈实现括号的匹配,左括号入栈,右括号出栈匹配
Hot 100 --- 寻找两个正序数组的中位数
本文讲解寻找两个正序数组的中位数的核心思路:在较短数组上二分切割,保证左边元素都小于右边元素
Hot 100 --- 寻找旋转排序数组中的最小值
本文讲解寻找旋转排序数组中的最小值的核心思路:两种方法——两次二分查找和一次二分查找
Hot 100 --- 搜索旋转排序数组
本文讲解搜索旋转排序数组的核心思路:两种方法——两次二分查找和一次二分查找
Hot 100 --- 在排序数组中查找元素的第一个和最后一个位置
本文讲解在排序数组中查找元素的第一个和最后一个位置的核心思路:通过两次二分查找分别定位左右边界





