zoukankan      html  css  js  c++  java
  • 【leetcode】按照频率将数组升序排序

    /**
     * Note: The returned array must be malloced, assume caller calls free().
     */
    typedef struct st{
        int val;
        int cnt;
    }st;
    int cmp(const void* a,const void* b){
        return ((*(st*)a).cnt != (*(st*)b).cnt)?(*(st*)a).cnt-(*(st*)b).cnt :(*(st*)a).val < (*(st*)b).val;
    }
    int* frequencySort(int* nums, int numsSize, int* returnSize){
        st arr[201]={0};
        int* ret = (int*)calloc(101,sizeof(int));
        int i,pst=0,n=0;
        for(i=0; i<numsSize; ++i){
            arr[nums[i]+100].val=nums[i];     
            arr[nums[i]+100].cnt++;
        }
        qsort(arr,201,sizeof(st),cmp);
        for(i=0; i<201; ++i){
            while(arr[i].cnt){
                ret[pst++]=arr[i].val;
                arr[i].cnt--;
            }
        }
        *returnSize=pst;
        return ret;
    }
    /**
     * Note: The returned array must be malloced, assume caller calls free().
     */
    typedef struct st{
        int val;
        int cnt;
    }st;
    int cmp(const void* a,const void* b){
        return ((*(st*)a).cnt != (*(st*)b).cnt)?(*(st*)a).cnt-(*(st*)b).cnt :(*(st*)a).val < (*(st*)b).val;
    }
    int* frequencySort(int* nums, int numsSize, int* returnSize){
        st arr[201]={0};
        int* ret = (int*)calloc(101,sizeof(int));
        int i,pst=0,n=0;
        for(i=0; i<numsSize; ++i){
            arr[nums[i]+100].val=nums[i];     
            arr[nums[i]+100].cnt++;
        }
        qsort(arr,201,sizeof(st),cmp);
        for(i=0; i<201; ++i){
            while(arr[i].cnt){
                ret[pst++]=arr[i].val;
                arr[i].cnt--;
            }
        }
        *returnSize=pst;
        return ret;
    }
  • 相关阅读:
    axios
    es6
    $route监听路由变化
    容易挂
    自定义全局组件/插件
    eslintrc.js
    dev-server.js
    webpack-dev-server.js
    怎么消除间隔间的空白字符
    es6语法
  • 原文地址:https://www.cnblogs.com/ganxiang/p/13946660.html
Copyright © 2011-2022 走看看