哪个网站比较好,网络推广企划,网站模板asp,百度左侧优化Problem: 215. 数组中的第K个最大元素 文章目录 思路复杂度Code 思路
#x1f468;#x1f3eb; 参考
复杂度
时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( log n ) O(\log{n}) O(logn)
Code
class Solution {public int findKthLargest(int[] nums, int k… Problem: 215. 数组中的第K个最大元素 文章目录 思路复杂度Code 思路
参考
复杂度
时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( log n ) O(\log{n}) O(logn)
Code
class Solution {public int findKthLargest(int[] nums, int k){ListInteger list new ArrayList();for (int x : nums)list.add(x);return quickSelect(list, k);}private int quickSelect(ListInteger nums, int k){Random rand new Random();int pivot nums.get(rand.nextInt(nums.size()));ListInteger big new ArrayList();ListInteger equal new ArrayList();ListInteger small new ArrayList();for (int x : nums){if (x pivot)small.add(x);else if (x pivot)equal.add(x);elsebig.add(x);}if (k big.size())// 第 k 大在 big中return quickSelect(big, k);else if (big.size() equal.size() k)// 第 k 大在 small中return quickSelect(small, k - big.size() - equal.size());return pivot;// 当前选到的值就是第 k 大}
}