TOP101题解 | BM46#最小的K个数#

最小的K个数

https://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * @author Senky
 * @date 2023.08.25
 * @par url https://www.nowcoder.com/creation/manager/content/584337070?type=column&status=-1
 * @brief 
 * 
 * @param input int整型一维数组 
 * @param inputLen int input数组长度
 * @param k int整型 
 * @return int整型一维数组
 * @return int* returnSize 返回数组行数
 */
#include <stdlib.h>

//快排
int compar(const void* q1, const void* q2)
{
    return (*(int*)q1 - *(int*)q2);
}

int* GetLeastNumbers_Solution(int* input, int inputLen, int k, int* returnSize )
{
    // write code here
    if( 0 == k)
    {
        return NULL;
    }

    qsort(input, inputLen, sizeof(input[0]), compar);
    int* result = (int*)malloc(sizeof(int));
    *returnSize = 0;

    for(int i = 0; i < k ; i++)
    {
        result[(*returnSize)++] = input[i]; 
        result = realloc(result, (*returnSize + 1)*sizeof(int));
    }

    return result;
}

#TOP101#
TOP101-BM系列 文章被收录于专栏

系列的题解

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务