# [LeetCode]#1356. Sort Integers by The Number of 1 Bits

`Input: arr = [0,1,2,3,4,5,6,7,8]Output: [0,1,2,4,8,3,5,6,7]Explantion: [0] is the only integer with 0 bits.[1,2,4,8] all have 1 bit.[3,5,6] have 2 bits.[7] has 3 bits.The sorted array by bits is [0,1,2,4,8,3,5,6,7]`
`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]Explantion: All integers have 1 bit in the binary representation, you should just sort them in ascending order.`
`Input: arr = [10000,10000]Output: [10000,10000]`
`Input: arr = [2,3,5,7,11,13,17,19]Output: [2,3,5,17,7,11,13,19]`
`Input: arr = [10,100,1000,10000]Output: [10,100,10000,1000]`
1. Convert arr to bit format.
2. count(‘1') in each arr
3. sort it by step 2 red mark value
4. return blue mark value
`class Solution:    def sortByBits(self, arr):        d=[]        for i in sorted(arr):            d.append((i,bin(i).count('1')))sd = sorted(d, key=lambda i: i[1])ans=[]        for i in sd:            ans.append(i[0])        return ans`

--

--

--

## More from Fatboy Slim

Interesting in any computer science.

Love podcasts or audiobooks? Learn on the go with our new app.

## Fatboy Slim

Interesting in any computer science.