Medium 215题 Kth Largest Element in an Array
来源:互联网 发布:java程序员个人简历 编辑:程序博客网 时间:2024/06/05 13:13
Question:
Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.
For example,
Given [3,2,1,5,6,4]
and k = 2, return 5.
Note:
You may assume k is always valid, 1 ≤ k ≤ array's length.
Here is a easy solution, but it seems we are not expected to do so?
public class Solution { public int findKthLargest(int[] nums, int k) { int n=nums.length; int kplus=n-k+1; //the kth smallest Arrays.sort(nums); return nums[kplus-1]; }}
We use quick sort
/*public class Solution { public int findKthLargest(int[] nums, int k) { int n=nums.length; int kplus=n-k+1; //the kth smallest Arrays.sort(nums); return nums[kplus-1]; int n=nums.length; int kplus=n-k+1; }}*/public class Solution {public int findKthLargest(int[] a, int k) { int n = a.length; int p = quickSelect(a, 0, n - 1, n - k + 1); return a[p]; } // return the index of the kth smallest number int quickSelect(int[] a, int lo, int hi, int k) { // use quick sort's idea // put nums that are <= pivot to the left // put nums that are > pivot to the right int i = lo, j = hi, pivot = a[hi]; while(i<j) { if(a[i]>pivot) { j--; swap(a,i,j); } else { i++; } } swap(a,i,hi); // count the nums that are <= pivot from lo int m=i-lo+1; if(m==k) return i; //continue search the right part else if(m<k) return quickSelect(a,i+1,hi,k-m); else return quickSelect(a,lo,i-1,k); } void swap(int[] a, int i, int j) { int tmp = a[i]; a[i] = a[j]; a[j] = tmp; }}
0 0
- Medium 215题 Kth Largest Element in an Array
- [Leetcode 215, Medium] Kth Largest Element in an Array
- 215[Medium]:Kth Largest Element in an Array
- Leetcode 215. Kth Largest Element in an Array (Medium) (cpp)
- Kth Largest Element in an Array——Difficulty:Medium
- (Leetcode)215.Kth Largest Element in an Array(medium)
- 【LeetCode】215. Kth Largest Element in an Array (Medium)
- Leetcode 215. Kth Largest Element in an Array[medium]
- LeetCode 215. Kth Largest Element in an Array(Medium)
- 215. Kth Largest Element in an Array (Medium)
- LeetCode215. Kth Largest Element in an Array(Medium)
- LeetCode 215. Kth Largest Element in an Array (Medium)
- 215Kth Largest Element in an Array
- 215-Kth Largest Element in an Array
- Kth Largest Element in an Array
- Leetcode Kth Largest Element in an Array
- Kth Largest Element in an Array
- Kth Largest Element in an Array
- struts2多文件上传
- JAG Practice Contest for ACM-ICPC Asia Regional 2016 C题【贪心】
- JAVA-集合工具类
- JS快速排序
- 建立一个5行5列的矩阵,找出其中最小的元素,输出该值及行、列号。
- Medium 215题 Kth Largest Element in an Array
- HDU 1150 Machine Schedule 最小顶点覆盖
- 2016四川省赛A,C【写了1w个if的水题】
- Webmagic 获取数据初探访1
- 集合及concurrent并发包总结
- UML活动图概要
- JAVA-增强for循环
- LightOJ 1079 - Just another Robbery (背包问题)
- 如何统一设置a标签默认超链接点击进入新窗口