码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode-895 Maximum Frequency Stack(最大频率堆栈)

时间:2018-08-26 15:44:23      阅读:582      评论:0      收藏:0      [点我收藏+]

标签:ret   tab   pre   pop   return   bsp   tac   red   enc   

 1 class FreqStack
 2 {
 3     public:
 4         unordered_map<int,int> hash;
 5         vector<int> stk;
 6         int max_times;
 7         int times_table[10001];
 8         FreqStack()
 9         {
10             memset(times_table,0,sizeof(times_table));
11             max_times = 0;
12         }
13 
14         void push(int x)
15         {
16             stk.push_back(x);
17 
18             auto ptr_to_hash = hash.find(x);
19             if(ptr_to_hash==hash.end())
20             {
21                 hash.insert(make_pair(x,1));
22                 times_table[1] ++;
23                 max_times = max(1,max_times);
24             }
25             else
26             {
27                 times_table[ptr_to_hash->second] --;
28                 ptr_to_hash->second += 1;
29                 times_table[ptr_to_hash->second] ++;
30                 max_times = max(ptr_to_hash->second,max_times);
31             //    cout << x << " " << max_times << endl;
32             }
33         }
34 
35         int pop()
36         {
37             for(int i = stk.size()-1;i >= 0;i --)
38             {
39                 auto ptr_to_hash = hash.find(stk[i]);
40                 if(ptr_to_hash->second==max_times)
41                 {
42                     int result = stk[i];
43                     stk.erase(stk.begin()+i);
44                     times_table[ptr_to_hash->second] --;
45                     ptr_to_hash->second -= 1;
46                     times_table[ptr_to_hash->second] ++;
47                     if(!times_table[max_times])
48                     {
49                         max_times --;
50                     }
51                     return result;
52                 }
53             }
54             return max_times;
55         }
56 };

 

Leetcode-895 Maximum Frequency Stack(最大频率堆栈)

标签:ret   tab   pre   pop   return   bsp   tac   red   enc   

原文地址:https://www.cnblogs.com/Asurudo/p/9537323.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!