思路一:数组按序排列,中间的数肯定是出现次数大于n/2的数 仔细推理一下就可以得出规律
思路二:哈希表 (map)
哈希表相关知识点解释:哈希表简单来说就是建立key到value的映射。 就题而言就是数组的数值(key )与数值在数组中出现的次数(value)的映射
C++中用map<int,int>即可简单建立一个哈希表。

1 class Solution {
2 public:
3 int majorityElement(vector<int>& nums) {
4 map<int,int> m;
5 for(int i=0;i<nums.size();i++)
6 {
7 m[nums[i]]=0; //初始化
8 }
9 for(int i=0;i<nums.size();i++)
10 {
11 m[nums[i]]++;
12 if(m[nums[i]]>nums.size()/2)
13 {
14 return nums[i];
15 }
16 }
17 return -1;
18
19
20 }
21 };
来源:https://www.cnblogs.com/nxnslc-blog/p/12393714.html
