首页 > 数据库 >[Oracle] LeetCode 1636 Sort Array by Increasing Frequency 双map

[Oracle] LeetCode 1636 Sort Array by Increasing Frequency 双map

时间:2022-09-25 21:47:17浏览次数:55  
标签:Sort map 1636 nums int vector array freq

Given an array of integers nums, sort the array in increasing order based on the frequency of the values. If multiple values have the same frequency, sort them in decreasing order.

Return the sorted array.

Solution

我们用两个 \(map\) 分别来存储 \(num2freq,freq2num\). 此时对于第二个 \(map\),每一个 \(freq\) 对应着一个 \(vector\), 然后遍历存储即可

点击查看代码
class Solution {
private:
     map<int,vector<int>> freq_num;
     map<int,int> num_freq;
    
public:
    vector<int> frequencySort(vector<int>& nums) {
        int n = nums.size();
        for(int i=0;i<n;i++)num_freq[nums[i]]++;
        for(auto ele:num_freq){
            if(freq_num.count(ele.second)==0)freq_num[ele.second]={ele.first};
            else{
                freq_num[ele.second].push_back(ele.first);
            }
        }
        vector<int> ans;
        for(auto ele: freq_num){
            for(int i=ele.second.size()-1;i>=0;i--){
                for(int k=0;k<ele.first;k++){
                    ans.push_back(ele.second[i]);
                }
            }
        }
        return ans;
    }
};

标签:Sort,map,1636,nums,int,vector,array,freq
From: https://www.cnblogs.com/xinyu04/p/16729037.html

相关文章

  • .net6 使用 AutoMapper
    引用AutoMapper.Extensions.Microsoft.Dependencylnjection包组织映射配置的一个好方法是使用配置文件。创建继承自Profile并将配置放入构造函数的类publicclassR......
  • lambda函数和map函数的理解和使用
    lambda函数在说lambda函数前,先来想一下平时的在Python中怎么定义和使用函数的,简单的如下:defsum(x):x=x+5returnxprint(sum(8))输出结果都晓得:13上......
  • HashMap源码分析
    主要过一遍HashMap中的常量、构造方法、put方法当我们调用put时,实际上就是调用putValpublicVput(Kkey,Vvalue){returnputVal(hash(key),key,value,false,......
  • 自定义映射resultMap
    1、resultMap处理字段和属性的映射关系若字段名和实体类中的属性名不一致,则可以通过resultMap设置自定义映射<!--resultMap:设置自定义映射属性:id:表示自定义映射的唯......
  • resultType-resultMap注意点
    注意:1、查询的标签select必须设置属性resultType或resultMap,用于设置实体类和数据库表的映射关系resultType:自动映射,用于属性名和表中字段名一致的情况......
  • 从基础到实践,一文带你看懂HashMap
    HashMap是面试中经常问到的一个知识点,也是判断一个候选人基础是否扎实的标准之一,因为通过HashMap可以引出很多知识点,比如数据结构(数组、链表、红黑树)、equals和hashcode......
  • MapReduce学习
    笔记记录   ......
  • Hashmap的扩容机制及扩容后元素迁移
    一.HashMap基础HashMap继承了AbstractMap抽象类,实现了Map,Cloneable,Serializable接口。HashMap的源码属性:publicclassHashMap<K,V>extendsAbstractMap<K,V>implement......
  • Node.js 工具库 BlueBird 的一些例子:map,each 和 some
    map我是Array.map()函数的模拟,但用于异步任务。我可以接受一个并发参数并返回一个Promise,当所有任务完成后该Promise将被resolved。我的代码更短,特别是当用户需要......
  • JavaScript中数组的flatMap方法
    认识flatMapflatMap是数组的一个新方法,它会遍历原数组的每一个元素,并且会为每个元素都执行一次传入的回调函数,最终把所有元素执行回调函数返回的结果压缩成一个新数组,fla......