Kth Largest Element in an Array
2016-07-02 12:03
295 查看
Find K-th largest element in an array.
Notice
You can swap elements in the array
Example
In array
In array
分析:
使用partion把array分成两组,然后看中间那个数在哪个位置。然后再确定是继续在左半部分找还是在右半部分找。
转载请注明出处:cnblogs.com/beiyeqingteng/
Notice
You can swap elements in the array
Example
In array
[9,3,2,4,8], the 3rd largest element is
4.
In array
[1,2,3,4,5], the 1st largest element is
5, 2nd largest element is
4, 3rd largest element is
3and etc.
分析:
使用partion把array分成两组,然后看中间那个数在哪个位置。然后再确定是继续在左半部分找还是在右半部分找。
public class Solution { public int findKthLargest(int[] nums, int k) { if (nums == null || nums.length == 0 || k > nums.length) return -1; int start = 0, end = nums.length - 1; while (start <= end) { int p = partition(nums, start, end); if (p == nums.length - k) { return nums[p]; } else if (p < nums.length - k) { start = p + 1; } else { end = p - 1; } } return -1; } private int partition(int[] nums, int start, int end) { int p = start; for (int i = start; i <= end - 1; i++) { if (nums[i] < nums[end]) { swap(nums, p, i); p++; } } swap(nums, p, end); return p; } private void swap(int[] nums, int i, int j) { int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } }
转载请注明出处:cnblogs.com/beiyeqingteng/
相关文章推荐
- 全栈必备——Git
- Python使用迭代器打印螺旋矩阵的思路及代码示例
- Win32 自定义本地资源dll
- equals()与==的区别与实际应用
- Git——开发必备
- Android Bluetooth Profile通信
- the Linux Kernel: Traffic Control, Shaping and QoS
- Spring MVC入门示例
- 设为首页,收藏本站
- String的Intern方法详解
- CCI(gpio I2c) 与I2C
- 7月了
- Javassist的动态代理实现。
- 关于bootstrap--表单(按钮<button>效果、大小、禁用)
- LintCode336斐波那契数列的解析
- stl算法和防函数
- LaTeX技巧014:实现圆圈形状的脚注
- 为 Java EE 应用提供的 9 种 Docker 方法
- CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维
- linux下如何开放80端口