class Solution {
public int[] sortByBits(int[] arr) {
// System.out.print(arr.length);
int[] arr1 = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
// Integer.bitCount(arr[i])是计算arr[i]中的1的个数,
//个数*1000000+本身 可以作为一种排序,1个数不同的根据个数*100排序,
//1个数相同的根据本身排序
arr1[i] = Integer.bitCount(arr[i]) * 1000000 + arr[i];
System.out.print(Integer.bitCount(arr[i])*1000000+arr[i]);
System.out.print( " ");
}
Arrays.sort(arr1);
for (int i = 0; i < arr1.length; i++) {
arr1[i] = arr1[i] % 100;//%取余之后恢复原来的数字
}
return arr1;
}
}
Integer.bitCount(arr[i])
Integer.bitCount(arr[i])可以计算并返回arr[i]中的1的个数