题解:
哈希表计算频率 重写sort方法依据频率对数组进行排序。
class Solution {
public:
vector<int> frequencySort(vector<int>& nums) {
//建一个哈希表计数
unordered_map<int,int> numsmap;
//遍历数组计数
for(int i=0;i<nums.size();i++){
numsmap[nums[i]]++;
}
//根据频率对数组进行排序 重写sort
sort(nums.begin(),nums.end(),[&](const int a,const int b){
if(numsmap[a]!=numsmap[b]){
//不等时按照频率升序
return numsmap[a]<numsmap[b];
}
//相等时降序
return a>b;
});
return nums;
}
};