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] == '