LeetCode 895. 最大频率栈 C#
原题链接
困难
作者:
hpstory
,
2022-11-30 21:33:09
,
所有人可见
,
阅读 179
C# 代码
public class FreqStack {
private Dictionary<int, Stack<int>> stack;
private Dictionary<int, int> count;
private int index;
public FreqStack() {
this.stack = new Dictionary<int, Stack<int>>();
this.count = new Dictionary<int, int>();
this.index = 0;
}
public void Push(int val) {
if (!count.ContainsKey(val)){
count.Add(val, 0);
}
count[val]++;
index = Math.Max(index, count[val]);
if (!stack.ContainsKey(count[val])){
stack.Add(index, new Stack<int>());
}
stack[count[val]].Push(val);
}
public int Pop() {
int result = stack[index].Pop();
if (stack[index].Count == 0) index--;
count[result]--;
return result;
}
}