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://lswzjz.com/article/dieojs.html