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
Inputarr = [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
Inputarr = [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

Asked at 4 companies

</>

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Loading...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, missed edge cases, and complexity analysis of your solution.

Sign in to evaluate