215. 数组中的第K个最大元素,解法求解
这个题不可以根据它给出的数据范围,我们构建一个和其数值大小的数组,对给出的数计数,然后倒着找第k大的元素吗。我看题解全是快排、桶排,没有人这么写,笔试、面试的时候,可不可用数组的方法啊。
我的解法如下:
class Solution {
public int findKthLargest(int[] nums, int k) {
int[] arry = new int[20010];
for(int i = 0; i < nums.length; i++){
arry[nums[i] + 10000] ++;
}
for(int i = 20009; i >= 0; i--){
k -= arry[i];
if(k <= 0) {
return i - 10000;
}
}
return 0;
}
}
速度也还行
查看1道真题和解析

