没什么好说的,写一个排序映射即可。需要注意题目中要求当置位数目相同时,按数值大小比较。这个可以创建一个元组来比较。第一个位置存储置位数,第二个位置存储原数值。这样比较时就会自动按要求比较。算是一个小技巧。
class Solution:def sortByBits(self, arr: List[int]) -> List[int]:# 按要求排序arr.sort(key=lambda x:(x.bit_count(),x),reverse=False)return arr
没什么好说的,写一个排序映射即可。需要注意题目中要求当置位数目相同时,按数值大小比较。这个可以创建一个元组来比较。第一个位置存储置位数,第二个位置存储原数值。这样比较时就会自动按要求比较。算是一个小技巧。
class Solution:def sortByBits(self, arr: List[int]) -> List[int]:# 按要求排序arr.sort(key=lambda x:(x.bit_count(),x),reverse=False)return arr