堆
蝉衣少年
哈尔滨工业大学|计算机学院|计算机科学与技术
展开
-
leetcode 面试题17.14. 最小的k个数(小根堆)
题目描述: 面试题 17.14. 最小K个数 设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。 示例: 输入: arr = [1,3,5,7,2,4,6,8], k = 4 输出: [1,2,3,4] 提示: 0 <= len(arr) <= 100000 0 <= k <= min(100000, len(arr)) 这题很明显可以使用一个小根堆来解决: 1.首先在给定数组构造一个小根堆; 2.然后每次取出最小的元素加入答案的数组,然后整堆即可即可。 时原创 2020-09-05 15:16:55 · 357 阅读 · 0 评论 -
leetcode 1046 最后一块石头的重量(大堆)
leetcode 1046 最后一块石头对的重量 题目描述: 有一堆石头,每块石头的重量都是正整数。 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎; 如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。 最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。 示例: 输入:[2,7,4,1,8,1] 输原创 2020-08-19 14:47:18 · 192 阅读 · 0 评论