题解 | #最小的K个数#
最小的K个数
https://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param input int整型一维数组
* @param inputLen int input数组长度
* @param k int整型
* @return int整型一维数组
* @return int* returnSize 返回数组行数
*/
#include <stdio.h>
int partition (int A[], int low, int high)
{
int pivot = A[low];
while (low < high)
{
while(low < high && A[high] >= pivot ) --high;
A[low] = A[high];
while(low < high && A[low] <= pivot) ++low;
A[high] = A[low];
}
A[low] = pivot;
return low;
}
void QuickSort (int A[], int low,int high)
{
if (low < high)
{
int pivotpos = partition(A, low,high);
QuickSort(A, low, pivotpos -1);
QuickSort(A, pivotpos +1, high);
}
}
int* GetLeastNumbers_Solution(int* input, int inputLen, int k, int* returnSize ) {
// write code here
QuickSort(input, 0, inputLen-1);
*returnSize =k;
return input;
}
联想公司福利 1481人发布