[刷题]Data Stream Median
来源:互联网 发布:神话打电话软件下载 编辑:程序博客网 时间:2024/05/02 16:11
[LintCode]Data Stream Median
public class Solution { /** * @param nums: A list of integers. * @return: the median of numbers */ public int[] medianII(int[] nums) { // 2015-09-04 // median 中位数 // 左堆是最大堆,右堆是最小堆 // 只有两种情况:两堆元素个数相等,或左堆多一个 if (nums == null || nums.length == 0) { return new int[0]; } int initialSize = nums.length; int[] medianList = new int[initialSize]; // 如果不用initialSize会报错,不知道为什么 PriorityQueue<Integer> leftHeap = new PriorityQueue<Integer> (initialSize, new Comparator<Integer> () { public int compare(Integer a, Integer b) { return b - a; } }); PriorityQueue<Integer> rightHeap = new PriorityQueue<>(); for (int i = 0; i < nums.length; i++) { // 两堆都为空 if (leftHeap.isEmpty()) { leftHeap.offer(nums[i]); medianList[i] = leftHeap.peek(); continue; } if (nums[i] < leftHeap.peek()) { // 这个元素得放在左队 if (leftHeap.size() == rightHeap.size()) { leftHeap.offer(nums[i]); } else { leftHeap.offer(nums[i]); rightHeap.offer(leftHeap.poll()); } } else { // 这个元素得放在右堆 if (leftHeap.size() == rightHeap.size()) { rightHeap.offer(nums[i]); leftHeap.offer(rightHeap.poll()); } else { rightHeap.offer(nums[i]); } } medianList[i] = leftHeap.peek(); } return medianList; }}
0 0
- [刷题]Data Stream Median
- lintcode: Data Stream Median
- Data Stream Median
- Data Stream Median
- Find Median from Data Stream
- lintcode 1: Data Stream Median
- Find Median from Data Stream
- Find Median from Data Stream
- Find Median from Data Stream
- Find Median from Data Stream
- Find Median from Data Stream
- LintCode 81:Data Stream Median
- Find Median from Data Stream
- Find Median from Data Stream leetcode 295
- LeetCode Find Median from Data Stream
- leetcode 295:Find Median from Data Stream
- [leetcode295]Find Median from Data Stream
- leetcode 295 : Find Median from Data Stream
- caffe-将图片转化为siamese网络需要的数据库格式
- Eclipse快捷键使用大全
- HTML5 统计条数
- APP的启动页
- 83 XML数据基本概念
- [刷题]Data Stream Median
- linux下源码安装
- imageWatch安装流程(VS2012)
- 点到椭圆的最短距离
- iOS字体相关知识
- 实习总结
- UVA 10917 最短路
- Java基础之Runnable与Thread的区别
- objective-c基础教程——学习小结