分别统计每个数字的二进制中的1的个数,然后以键(1的个数):值(列表)的形式放到字典中,
然后对字典的键和对应的列表进行排序,插到一个空列表中。
class Solution:
def sortByBits(self, arr: List[int]) -> List[int]:
dic = {}
lis = []
for each in arr:
n = str(bin(each))[2:].count('1')
if n in dic:
dic[n].append(each)
else:
dic[n] = [each]
for each in sorted(dic.keys()):
for num in sorted(dic[each]):
lis.append(num)
return lis