freq
, group
, and maxfreq
.push(val)
: Increment freq[val]
. Update maxfreq
if freq[val]
is greater than maxfreq
. Push val
onto group[freq[val]]
.pop()
: Pop an element from group[maxfreq]
. Decrement freq[val]
of the popped element. If group[maxfreq]
is empty, decrement maxfreq
. Return the popped element.