堆
堆排序
Sophia_fez
干啥啥不行,可爱第一名.jpg
展开
-
leetcode **剑指 Offer 41. 数据流中的中位数 & **295. 数据流的中位数(2021.8.27)(小顶堆大顶堆)
【题目】**剑指 Offer 41. 数据流中的中位数 & **295. 数据流的中位数如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。d原创 2020-09-24 23:43:08 · 150 阅读 · 0 评论 -
leetcode *347. 前 K 个高频元素(堆排序)(2020.9.7)
【题目】*347. 前 K 个高频元素给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的。原创 2020-09-07 11:01:15 · 199 阅读 · 0 评论 -
leetcode 剑指 Offer 40. 最小的k个数(堆排序、快排)(2020.3.20)
【题目】面试题40. 最小的k个数215. 数组中的第K个最大元素输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]限制:0 &...原创 2020-04-06 17:34:44 · 293 阅读 · 0 评论 -
leetcode *215. 数组中的第K个最大元素(堆排序)(2020.6.29)
【题目】在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4【解题思路1】先排序,然后直接返回 nums.length-k 位置的元素就是第k大元素cl...原创 2020-03-31 17:01:23 · 283 阅读 · 0 评论 -
leetcode 703. 数据流中的第K大元素(待研究)
【题目】703. 数据流中的第K大元素设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流中第K大的元素。示例:int k = 3;int[] arr = [4,5,8,2];...原创 2020-04-28 19:52:58 · 130 阅读 · 0 评论 -
leetcode **632. 最小区间(待研究)(2020.8.1)
【题目】**632. 最小区间你有 k 个升序排列的整数数组。找到一个最小区间,使得 k 个列表中的每个列表至少有一个数包含在其中。我们定义如果 b-a < d-c 或者在 b-a == d-c 时 a < c,则区间 [a,b] 比 [c,d] 小。示例 1:输入:[[4,10,15,24,26], [0,9,12,20], [5,18,22,30]]输出: [20,24]解释: 列表 1:[4, 10, 15, 24, 26],24 在区间 [20,24] 中。列表 2:[0原创 2020-08-01 09:54:00 · 226 阅读 · 0 评论