直接使用Arrays.sort API,复杂度为nlogn 还可以更快。 class Solution { public int findKthLargest(int[] nums, int k) { Arrays.sort(nums); return nums[nums.length - k]; } } 手写快速排序 但是手写快排的速度并没有赶上直接调用库函数… public class Solution { public int findKthLargest(int[] nums, int k) { // 进行降序排列,返回序号为k-1的数字 int begin = 0; int end = nums.length - 1; quickSort(nums, begin, end, k - 1); return nums[k - 1]; } private void quickSort(int[] nums, int begin, int end, int toFind) { int index = nums[begin];// 获取第一个数字 int i = begin; int j = end; while (i < j) { while (i < j && nums[j] <= index) { j--; } if (i < j) { nums[i] = nums[j]; } while (i < j && nums[i] >= index) { i++; } if (i < j) { nums[j] = nums[i]; } } nums[i] = index; if (i == toFind) { return; } else if (i < toFind) { quickSort(nums, i + 1, end, toFind); } else { // i>toFind quickSort(nums, begin, i - 1, toFind); } } }