题目描述:
169. Majority Element
Given an array of size n, find the majority element. The majority element is the element that appears more
than
⌊ n/2 ⌋ times.You may assume that the array is non-empty and the majority element always exist in the array.
解题思路:
本题被分类到分治算法中,但是没有想到应该怎么用分治法来求解。一个直接的想法就是使用map来记录每个数字出现的次数,然后找出出现次数大于
⌊ n/2 ⌋ 的那个即可。
代码展示:
<pre name="code" class="cpp">class Solution {
public:
int majorityElement(vector<int>& nums) {
map<int,int> ans;
for(int i=0 ;i<nums.size();i++)
{
ans[nums[i]]++;
}
map<int,int>:: iterator pt;
pt =ans.begin();
for(;pt!=ans.end();pt++)
{
if(pt->second*2>=nums.size())
{
return pt->first;
}
}
return -1;
}
};
本文介绍了一个寻找数组中多数元素的问题及解决方案。多数元素是指在数组中出现次数超过一半的元素。文章提供了一种使用 map 来统计各元素出现次数的方法,并通过检查是否有一个元素的出现次数超过数组长度的一半来找到多数元素。
7426

被折叠的 条评论
为什么被折叠?



