LeetCode-347-前K个高频元素-C语言

/*
 * 算法思想:
 * 构建带权值哈希表,权值为出现次数;
 * 1. 首先排序,方便构建哈希表,使相同的值相邻;
 * 2. 排序哈希表,以哈希表的权值出现次数为排序元素;
 * 3. 从哈希表中提取k个排序结果即可。
 **/

int cmp(int *a, int *b){
    return *a - *b;
}

int cmp_node(int *a, int *b){
    return a[1] - b[1];
}

int* topKFrequent(int* arr, int len, int k, int* returnSize){
    qsort(arr, len, sizeof(int), cmp);
    
    int *ret = (int *)malloc(sizeof(int) * k);
    int hash[len][2];
    int i, index=0;
    int ret_index = 0;
    
    memset(hash, 0, sizeof(hash));
    
    for(i=0; i=0 && ret_index

你可能感兴趣的:(LeetCode)