LeetCode 1356. 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 in case of two or more integers have the same number of?1
's you have to 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]
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]
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]
Explantion:?
All integers have 1 bit in the binary representation, you should just sort them in ascending order.
?
Constraints:
1 <= arr.length <= 500
0 <= arr[i] <= 104
就是根據(jù)每個(gè)數(shù)字的二進(jìn)制里面1的數(shù)量來判斷進(jìn)行排序的,只是這樣空間占得要大一點(diǎn),結(jié)果一點(diǎn)都不大,因?yàn)槲矣昧祟~外的二維數(shù)組來存儲對應(yīng)的1的數(shù)量的;
然后用自帶的排序功能進(jìn)行排序的。
下面是代碼:
Runtime:?10 ms, faster than?40.66%?of?Java?online submissions for?Sort Integers by The Number of 1 Bits.
Memory Usage:?42.7 MB, less than?86.83%?of?Java?online submissions for?Sort Integers by The Number of 1 Bits.