1
class Solution {
2
public int[] sortByBits(int[] arr) {
3

4
Integer[] arrInt = new Integer[arr.length];
5

6
for (int i = 0; i < arr.length; i++) {
7
arrInt[i] = arr[i];
8
}
9

10
Arrays.sort(
11
arrInt,
12
new Comparator<Integer>() {
13
@Override
14
public int compare(Integer a, Integer b) {
15
int aBits = numOfBits(a);
16
int bBits = numOfBits(b);
17
if (aBits == bBits) {
18
return a - b;
19
}
20
return aBits - bBits;
21
}
22
});
23

24
for (int i = 0; i < arr.length; i++) {
25
arr[i] = arrInt[i];
26
}
27
return arr;
28
}
29

30
public int numOfBits(int a) {
31
int bits = 0;
32
while (a != 0) {
33
bits += a & 1;
34
a = a >>> 1;
35
}
36

37
return bits;
38
}
39
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0