leetcode.895最大频率栈-哈希表+栈-创新互联

895. 大频率栈

我们提供的服务有:成都网站建设、网站建设、微信公众号开发、网站优化、网站认证、白沙黎族ssl等。为成百上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的白沙黎族网站制作公司

核心思路:

  • 把频率(出现次数)不同的元素,压入不同的栈中。
  • 每次出栈时,弹出含有频率最高元素的栈的栈顶。

class FreqStack {
    unordered_mapcnt;
    vector>v;

    //cnt[val] 指val的出现频率
public:
    void push(int val) {
        if(cnt[val]==v.size()) v.push_back({}); //如果该元素频率等于目前频率栈的个数 则下一次需要开新栈
        v[cnt[val]].push(val); //元素入cnt[val]次频率栈
        cnt[val]++;
    }
    
    int pop() {
        int val=v.back().top(); //弹出最右侧(大频率栈)的栈顶
        v.back().pop();
        if(v.back().empty()) v.pop_back(); //如果该频率栈里元素为空 则删除该频率栈
        cnt[val]--;
        return val;
    }
};

c++ vector容器和stack容器详解:

【C++常用】set + map + vector + stack + queue + 优先队列_Roye_ack的博客-博客

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站栏目:leetcode.895最大频率栈-哈希表+栈-创新互联
文章来源:http://scyanting.com/article/dieojs.html