![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
堆算法题
一碗机智的糖浆
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 49. 丑数(java实现)--LeetCode
文章目录题目:解法1:heap题目:我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1 是丑数。n 不超过1690。注意:本题与主站 264 题相同:https://leetcode-cn.com/problems/ugly-number-ii/解法1:heap/** * 思路:原创 2021-01-18 12:11:43 · 87 阅读 · 0 评论 -
347. 前 K 个高频元素(java实现)--LeetCode
文章目录题目:解法1:heap解法2:二叉搜索树题目:给定一个非空的整数数组,返回其中出现频率前 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 个高频元素原创 2021-01-18 11:33:43 · 182 阅读 · 0 评论 -
剑指 Offer 40. 最小的k个数(java实现)--LeetCode
文章目录题目:解法1:排序解法2:新建数组解法3:heap(小顶堆)解法4:大顶堆题目:输入整数数组 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 <= k <= arr.length <= 100000 <=原创 2021-01-18 11:00:49 · 88 阅读 · 0 评论 -
239. 滑动窗口最大值(java实现)--LeetCode
解法1:暴力/** * 思路: * 比较k范围内的值,找到并记录 * 如果当前的max等于start-1,前移的时候就重新从start到end找max。 * 如果不等于,直接比较max和end */ public int[] maxSlidingWindow(int[] nums, int k) { int start=0,end=k-1,max=nums[0]; int[] result=new int[nums.length-k+1];原创 2020-12-10 14:34:17 · 203 阅读 · 0 评论