解题思路:
一道很有意思的简单题,首先用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;
}
};