其他分享
首页 > 其他分享> > LeetCode #1636. Sort Array by Increasing Frequency

LeetCode #1636. Sort Array by Increasing Frequency

作者:互联网

题目

1636. Sort Array by Increasing Frequency


解题方法

先用collections.Counter计算频数存入字典,然后用sorted方法对字典中的键根据值顺序排序,第二关键字设置为键的倒序,返回一个元组组成的列表temp,其中每个元组的第一位是成员值,第二位是成员出现的次数,从头至尾遍历temp写元素即可。
时间复杂度:O(nlogn)
空间复杂度:O(n)


代码

class Solution:
    def frequencySort(self, nums: List[int]) -> List[int]:
        dic = collections.Counter(nums)
        temp = sorted(dic.items(), key=lambda d:(d[1],-d[0]))
        
        nums = []
        for i in range(len(temp)):
            times = temp[i][1]
            while times:
                nums.append(temp[i][0])
                times -= 1
        
        return nums

标签:Sort,Increasing,1636,temp,nums,int,times,Frequency,dic
来源: https://www.cnblogs.com/RatsCommander/p/14084039.html