LeetCode 1636 按照频率将数组升序排序[Map] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1636 按照频率将数组升序排序[Map] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。


解题思路:
一道很有意思的简单题,首先用map统计每个数的频率,接着按照频率进行排序,如果频率相同,按照大小降序排序,代码如下:

class Solution 
public:
    vector<int> frequencySort(vector<int>& nums) 
        int n = nums.size();
        unordered_map<int, int> mp;
        for(int i = 0; i < n; i ++) 
            mp[nums[i]] ++;
        
        sort(nums.begin(), nums.end(), [&](const int& a, const int& b) 
            if(mp[a] == mp[b]) 
                return a > b;
             
            return mp[a] < mp[b];
        );
        return nums;
    
;

以上是关于LeetCode 1636 按照频率将数组升序排序[Map] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

「 每日一练,快乐水题 」1636. 按照频率将数组升序排序

「 每日一练,快乐水题 」1636. 按照频率将数组升序排序

「 每日一练,快乐水题 」1636. 按照频率将数组升序排序

LeetCode 解题大纲(每日一题C++自用)

LeetCode 451 根据字符出现频率排序

每日一题11.6