設計一個類似堆棧的數據結構,將元素推入堆棧,并從堆棧中彈出出現頻率最高的元素。
創新互聯主營潛山網站建設的網絡公司,主營網站建設方案,成都app開發,潛山h5重慶小程序開發搭建,潛山網站營銷推廣歡迎潛山等地區企業咨詢實現 FreqStack 類:
FreqStack() 構造一個空的堆棧。
void push(int val) 將一個整數 val 壓入棧頂。
int pop() 刪除并返回堆棧中出現頻率最高的元素。
如果出現頻率最高的元素不只一個,則移除并返回最接近棧頂的元素。
輸入:
[“FreqStack”,“push”,“push”,“push”,“push”,“push”,“push”,“pop”,“pop”,“pop”,“pop”],
[[],[5],[7],[5],[7],[4],[5],[],[],[],[]]
輸出:[null,null,null,null,null,null,null,5,7,5,4]
解釋:
FreqStack = new FreqStack();
freqStack.push (5);//堆棧為 [5]
freqStack.push (7);//堆棧是 [5,7]
freqStack.push (5);//堆棧是 [5,7,5]
freqStack.push (7);//堆棧是 [5,7,5,7]
freqStack.push (4);//堆棧是 [5,7,5,7,4]
freqStack.push (5);//堆棧是 [5,7,5,7,4,5]
freqStack.pop ();//返回 5 ,因為 5 出現頻率最高。堆棧變成 [5,7,5,7,4]。
freqStack.pop ();//返回 7 ,因為 5 和 7 出現頻率最高,但7最接近頂部。堆棧變成 [5,7,5,4]。
freqStack.pop ();//返回 5 ,因為 5 出現頻率最高。堆棧變成 [5,7,4]。
freqStack.pop ();//返回 4 ,因為 4, 5 和 7 出現頻率最高,但 4 是最接近頂部的。堆棧變成 [5,7]。
來源:力扣(LeetCode)
鏈接:https://leetcode.cn/problems/maximum-frequency-stack
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
class FreqStack {Mapcnts;
Map>map;
int max;
public FreqStack() {cnts = new HashMap<>();
map = new HashMap<>();
}
public void push(int val) {cnts.put(val, cnts.getOrDefault(val, 0) + 1);
int c = cnts.get(val);
Listlist = map.getOrDefault(c, new ArrayList<>());
list.add(val);
map.put(c, list);
max = Math.max(max, c);
}
public int pop() {Listlist = map.get(max);
int ans = list.remove(list.size() - 1);
cnts.put(ans, cnts.get(ans) - 1);
if (list.size() == 0) max--;
return ans;
}
}
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
網頁名稱:力扣895.最大頻率棧-創新互聯
本文網址:http://vcdvsql.cn/article30/hocpo.html
成都網站建設公司_創新互聯,為您提供虛擬主機、外貿建站、網站改版、網站策劃、建站公司、定制網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯