zoukankan      html  css  js  c++  java
  • 【leetcode】179. 最大数

    int cmp(const void*a,const void*b){
        char s1[100],s2[100];
        sprintf(s1,"%d%d",*(int *)a,*(int *)b);
        sprintf(s2,"%d%d",*(int *)b,*(int *)a);
        return strcmp(s2,s1);
    }
    char * largestNumber(int* nums, int numsSize){
        qsort(nums,numsSize,sizeof(int),cmp);
        if(nums[0]==0) 
            return "0";
        char* res=(char*)calloc(sizeof(char),1000);
        int i,len=0;
        for(i=0;i<numsSize;i++){
            len+= sprintf(res+len,"%d",nums[i]);
        }
        return res;
    }
    int cmp(const void* a,const void* b){
        char* s1=(*(char**)a);
        char* s2=(*(char**)b);
        int i;
        for (i=0; s1[i] && s2[i]; i++ )
        {
            if(s1[i] != s2[i])
                return s1[i]<s2[i];
        }
        if(s1[i] == '' && s2[i] == '')
            return 0;
        else if(s2[i] == ''){
            char* buffer=(char*)calloc(20,sizeof(char));
            strcat(buffer,s1+i);
            strcat(buffer,s2);
            return strcmp(s1,buffer);
        }
        else if(s1[i] == ''){        
            char* buffer=(char*)calloc(20,sizeof(char));
            strcat(buffer,s2+i);
            strcat(buffer,s1);    
            return strcmp(buffer,s2);
        }
        return 0;
    }
    char * largestNumber(int* nums, int numsSize){
        char** arr=(char**)calloc(numsSize,sizeof(char*));
        char* retStr=(char*)calloc(500,sizeof(char));
        int i;
        for (i=0; i<numsSize; i++)
        {
            char* temp=(char*)calloc(20,sizeof(char));
            sprintf(temp,"%d",nums[i]);
            arr[i]=temp;
            
        }
        qsort(arr,numsSize,sizeof(char*),cmp);  
        for (i=0; i<numsSize; i++)
            strcat(retStr,arr[i]);
        return (*retStr=='0')?"0" :retStr;
    }
  • 相关阅读:
    Windows8.1 + Nvidia cuda8.0 + Vs2015
    读《鲜花帝国》有感
    oracle-sql书写
    oracle--聚合函数和case when结合使用
    oracle正则表达式
    oracle中case when使用
    oracle分区表之列表分区
    linux下oracl字符集修改(WE8ISO8859P1 --> ZHS16GBK)
    linux 下安装oracle数据库
    oracle学习笔记
  • 原文地址:https://www.cnblogs.com/ganxiang/p/14185414.html
Copyright © 2011-2022 走看看