地址:

1535. 找出数组游戏的赢家

状态:AC

代码:

  1. class Solution {
  2. public:
  3. int getWinner(vector<int>& arr, int k) {
  4. if(k >= arr.size())
  5. return *max_element(arr.begin(),arr.end());
  6. deque<int> q;
  7. unordered_map<int,int> mp;
  8. for(int i:arr){
  9. q.push_back(i);
  10. }
  11. int a,b;
  12. int big,small;
  13. while(1){
  14. a = q.front();
  15. q.pop_front();
  16. b = q.front();
  17. q.pop_front();
  18. big = max(a,b);
  19. small = min(a,b);
  20. q.push_front(big);
  21. q.push_back(small);
  22. if(mp.find(big) == mp.end()){
  23. mp[big] = 1;
  24. if(mp[big] == k)
  25. return big;
  26. }else{
  27. mp[big]++;
  28. if(mp[big] == k)
  29. return big;
  30. }
  31. }
  32. }
  33. };