题目: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显然会容易得多。计数后直接进行判断是否满足主要元素的条件。map的find函数的应用在这里使得算法更加简单。
代码如下:
class Solution {public: int majorityElement(vector<int>& nums) { map<int,int>m; for(int i=0;i<nums.size();i++){ map<int,int>::iterator it=m.find(nums[i]); if(it==m.end()){ m[nums[i]]=1; }else{ m[nums[i]]++; } if(m[nums[i]]>(nums.size()/2)){ return nums[i]; } } }};新闻热点
疑难解答