Leetcode-1157 Online Majority Element In Subarray(子数组中占绝大多数的元素)

 1 #define _for(i,a,b) for(int i = (a);i < b;i ++)
 2 
 3 
 4 class MajorityChecker
 5 {
 6     public:
 7         vector<int> v;
 8         int hash[20003];
 9         MajorityChecker(vector<int>& arr)
10         {
11             v = arr;
12         }
13 
14         int query(int left, int right, int threshold)
15         {
16             memset(hash,0,sizeof(hash));
17             _for(i,left,right+1)
18                 hash[v[i]] ++;
19             _for(i,0,20003)
20                 if(hash[i]>=threshold)
21                     return i;
22             return -1;
23         }
24 };

这题...无语了,哪来的9分难度......注意一下条件2 * threshold > right - left + 1,也就是说他给你的阈值都是要求在所给定区间里出现一半次数以上的....一维数组水过去,啥优化不加都能过

posted @ 2019-08-11 12:20  Asurudo  阅读(437)  评论(0编辑  收藏  举报