1. 题面
在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
示例 1:
| 12
 
 | 输入: [3,2,1,5,6,4] 和 k = 2输出: 5
 
 | 
示例 2:
| 12
 
 | 输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4
 
 | 
2. 解答
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 
 | class Solution {public int findKthLargest(int[] nums, int k) {
 
 
 
 
 
 return quickSort(nums,0,nums.length-1)[nums.length-k];
 
 }
 
 public int[] quickSort(int[] nums,int _left,int _right) {
 int left = _left;
 int right = _right;
 int tmp = 0;
 if(left <= right) {
 while(left != right) {
 tmp = nums[left];
 while(left < right && nums[right] > tmp)
 right --;
 nums[left] = nums[right];
 while(left < right && nums[left] < tmp)
 left ++;
 nums[right] = nums[left];
 }
 }
 nums[right] = tmp;
 quickSort(nums,_left,left-1);
 quickSort(nums,right+1,_right);
 return nums;
 }
 }
 
 | 
        
        若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏