int cmp(const void* a,const void* b){
return *(int*)a-*(int*)b;
}
int get_1(int val){
int count=0;
while(val){
if(val&1==1)count++;
val>>=1;
}
return count;
}
int* sortByBits(int* arr, int arrSize, int* returnSize){
qsort(arr,arrSize,sizeof(arr[0]),cmp);
*returnSize=arrSize;
int *temp=(int*)malloc(sizeof(int)*arrSize);
int k=0,j=0;
while(1){
for(int i=0;i<arrSize;i++)
if(get_1(arr[i])==j) temp[k++]=arr[i];
j++;
if(k==arrSize)break;
}
return temp;
}
leetcode打卡69
最新推荐文章于 2022-11-12 12:02:37 发布