*895-最大频率栈
题目
要求
思路
代码
class FreqStack(object):
def __init__(self):
self.freq = collections.Counter()
self.group = collections.defaultdict(list)
self.max_freq = 0
def push(self, x):
"""
:type x: int
:rtype: None
"""
f = self.freq[x] + 1
self.freq[x] = f
if f > self.max_freq:
self.max_freq = f
self.group[f].append(x)
def pop(self):
"""
:rtype: int
"""
t = self.group[self.max_freq].pop(-1)
self.freq[t] -= 1
if len(self.group[self.max_freq]) == 0:
self.max_freq -= 1
return t最后更新于