欢迎光临散文网 会员登陆 & 注册

LeetCode 1356. Sort Integers by The Number of 1 Bits

2023-05-05 16:00 作者:您是打尖儿还是住店呢  | 我要投稿

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

就是根据每个数字的二进制里面1的数量来判断进行排序的,只是这样空间占得要大一点,结果一点都不大,因为我用了额外的二维数组来存储对应的1的数量的;

然后用自带的排序功能进行排序的。

下面是代码:

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.


LeetCode 1356. Sort Integers by The Number of 1 Bits的评论 (共 条)

分享到微博请遵守国家法律