【leetcode】295. 数据流的中位数
题目内容 295. 数据流的中位数 思路分析 参考资料 方法一:两个堆 此方法十分巧妙,这里直接上个来自这里的图: 其实就是利用中位数是最中间的数字的特点,将数字按大小分为个数相等的两部分(或数字较小的部分元素个数可以比数字较大的部分多1): bigger_nums:较大的一部分数字,它是一个堆顶为最小值的堆; ...
题目内容 295. 数据流的中位数 思路分析 参考资料 方法一:两个堆 此方法十分巧妙,这里直接上个来自这里的图: 其实就是利用中位数是最中间的数字的特点,将数字按大小分为个数相等的两部分(或数字较小的部分元素个数可以比数字较大的部分多1): bigger_nums:较大的一部分数字,它是一个堆顶为最小值的堆; ...
题目内容 239. 滑动窗口最大值 思路分析 参考资料 方法一:优先队列 似乎这种最大值问题比较容易想到优先队列这种数据类型,优先队列可以维护一个最大或最小值,一般是由二叉堆实现的。关于二叉堆我专门写了一篇学习笔记。 优先队列可以自动帮我们得出前i个数的最大值,然而这个题目是个窗口问题,因此每次判断队列的最大值的...
参考资料 漫画:什么是二叉堆?(修正版) 二叉堆(binary heap)的insert和build 时间复杂度分析 二叉堆-wiki 优先队列-wiki 漫画:什么是优先队列? 数据结构 - 优先队列与二叉堆 二叉堆及堆排序 堆排序-wiki 堆排序的时间复杂度 定义 二叉堆是一种满二叉树,分为最大堆和最小堆。...