Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class FreqStack {
- public:
- unordered_map<int, int> freq;
- unordered_map<int, stack<int> > m;
- int maxFreq;
- FreqStack() {
- maxFreq = 0;
- }
- void push(int val) {
- freq[val]++;
- m[freq[val]].push(val);
- maxFreq = max(maxFreq, freq[val]);
- }
- int pop() {
- int tmp = m[maxFreq].top();
- m[maxFreq].pop();
- if(m[maxFreq].empty()) maxFreq--;
- freq[tmp]--;
- return tmp;
- }
- };
- /**
- * Your FreqStack object will be instantiated and called as such:
- * FreqStack* obj = new FreqStack();
- * obj->push(val);
- * int param_2 = obj->pop();
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement