Sort Integers by The Number of 1 Bits
You are given an integer array arr. Sort the integers in the array in ascending order by the number of 1's in their binary representation, and if two or more integers have the same number of 1's, sort them in ascending order.
Return the array after sorting it.
Example 1
Input
arr = [0,1,2,3,4,5,6,7,8]Output
[0,1,2,4,8,3,5,6,7]0 is the only integer with 0 bits; [1, 2, 4, 8] have 1 bit; [3, 5, 6] have 2 bits; and [7] has 3 bits, so the sorted array by bits is [0, 1, 2, 4, 8, 3, 5, 6, 7].Example 2
Input
arr = [1024,512,256,128,64,32,16,8,4,2,1]Output
[1,2,4,8,16,32,64,128,256,512,1024]All integers have 1 bit in their binary representation, so they are sorted in ascending order.
Constraints
- 1 <= arr.length <= 500
- 0 <= arr[i] <= 10^4