- 给定一个大小为
n
的数组nums
,返回其中的多数元素。多数元素是指在数组中出现次数 大于⌊ n/2 ⌋
的元素。 - 你可以假设数组是非空的,并且给定的数组总是存在多数元素。
示例 1:
输入:nums = [3,2,3] 输出:3
示例 2:
输入:nums = [2,2,1,1,1,2,2] 输出:2
- 采用map键值对存放每个值以及对应出现的次数,用打擂台的方式,将最大的返回
class Solution{
public:
int majorityElement(vector<int>& nums)
{
unordered_map<int, int> map_nums_pair; //map键值对存放每个值以及出现的次数
int maxkey = 0,maxvalue = 0; //次数最大的
for(int sign: nums) //遍历nums容器
{
++map_nums_pair[sign]; //将每一个值以及对应出现的次数存入键值对
if(map_nums_pair[sign] > maxvalue) //采用擂台模式,维护最大值
{
maxkey = sign;
maxvalue = map_nums_pair[sign];
}
}
return maxkey; //返回最大的
}
};