题解 | #最小的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;
}

全部评论

相关推荐

喜欢喜欢喜欢:这是我见过最长最臭的简历
点赞 评论 收藏
分享
RickieOne:还有一个面试,上来就笔试算法 1️⃣ 字符串分割不能用 split ,ab&&c,根据&&放到数组上 2️⃣a 到 z 的全部组合情况,包括 a...z 3️⃣多线程,同时打印 1-200 4️⃣sql 代码 考分组 聚合 平均结合 小厂也这样吗,然后就八股 再拷打项目
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务