LeetCode上的题:面试题 17.14. 最小K个数
别人发的解答,我存档保存一下
class Solution {
public int[] smallestK(int[] arr, int k) {
int n = arr.length;
return quick_sort(arr, 0, n - 1, k);
}
public static int[] quick_sort(int[] a, int l, int r, int k){
if(l >= r) return new int[]{};
int i = l - 1, j = r + 1;
int x = a[l];
while(i < j)
{
do i ++; while( x > a[i]);
do j --; while( x < a[j]);
if(i < j)
{
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
if(j + 1 < k) quick_sort(a, j + 1, r, k);
if(j + 1 > k) quick_sort(a, l, j, k);
return Arrays.copyOf(a, k);
}
}
作者:ydzxs2011222
链接:https://leetcode-cn.com/problems/smallest-k-lcci/solution/kuai-pai-xu-yi-ge-mo-ban-song-gei-da-jia-9kht/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。