[LeetCode]632. Smallest Range
来源:互联网 发布:计算机算法基础 余祥宣 编辑:程序博客网 时间:2024/05/22 14:42
https://leetcode.com/problems/smallest-range/#/description
给k个递增数组,找出一个最小范围,保证每个数组内至少有一个数字落在这个区间上
类似归并排序思想——多维有序数组问题考虑mergeSort+pq思想
pq内每次poll出当前最小值,max保存当前已访问的最大值,当前pq中的所有值一定在这个区间内(满足该区间覆盖所有数组条件),只要看这个区间是否为更小的那个区间即可
public class Solution { public int[] smallestRange(List<List<Integer>> nums) { int start = -1; int end = -1; int max = Integer.MIN_VALUE; int range = Integer.MAX_VALUE; PriorityQueue<Element> queue = new PriorityQueue(new Comparator<Element>() { public int compare(Element e1, Element e2) { return e1.val - e2.val; } }); for (int i = 0; i < nums.size(); i++) { Element e = new Element(nums.get(i).get(0), 0, i); queue.offer(e); max = Math.max(max, e.val); } while (queue.size() == nums.size()) { Element e = queue.poll(); if (max - e.val < range) { range = max - e.val; start = e.val; end = max; } if (e.index + 1 < nums.get(e.row).size()) { e.index = e.index + 1; e.val = nums.get(e.row).get(e.index); queue.offer(e); if (e.val > max) { max = e.val; } } } return new int[]{start, end}; } class Element { int index; int row; int val; public Element(int val, int index, int row) { this.val = val; this.index = index; this.row = row; } }}
阅读全文
0 0
- leetcode 632. Smallest Range
- [LeetCode]632. Smallest Range
- [leetcode]632. Smallest Range
- 【LeetCode】632. Smallest Range
- leetcode题解 632. Smallest Range
- LeetCode Add to List 632. Smallest Range
- [python]leetcode(632). Smallest Range
- Leetcode | Smallest Range(Hard)
- 632. Smallest Range
- 632. Smallest Range
- 632. Smallest Range
- [LeetCode]632. Smallest Range 深入浅出讲解和代码示例
- leetcode 632. Smallest Range 典型的移动窗口做法
- leetCode 483. Smallest Good Base
- [leetcode]483. Smallest Good Base
- [Leetcode]Range Sum Query
- LeetCode 370. Range Addition
- leetcode Range Addition
- bootstrapTable 获取选中CheckBox的所有数据
- Unity3D-关于使用了Metal的Graphic闪退问题
- php学习笔记--字符编码函数
- iOS_二维码、条形码的生成
- {模板}线性筛法求素数表
- [LeetCode]632. Smallest Range
- 中企动力主动求变 “管家服务”护航企业级市场
- .gitignore
- js排序算法
- 如何写出健壮的JAVA程序的一些心得。
- 《TP5.0学习笔记---配置篇》
- 2017-7-11 使用bash,标准输入输出和管道
- Java JDK和SDK
- 真机调试时部分日志丢失(魅族)