leetCode169.MajorityElement数组

169. Majority Element

创新互联公司长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为海晏企业提供专业的网站设计、网站建设海晏网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

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.

思路1:

使用map来处理。

class Solution {
public:
    int majorityElement(vector& nums) {
    	map record;
    	for (int i = 0; i < nums.size(); i++)
    	{
    		if (record.find(nums[i]) == record.end())
    		{
    			record.insert(pair(nums[i], 1));
    			if (record[nums[i]] > nums.size() / 2)
    			{
    				return nums[i];
    			}
    		}
    		else
    		{
    			record[nums[i]] += 1;
    			if (record[nums[i]] > nums.size() / 2)
    			{
    				return nums[i];
    			}
    		}
    	}
    	return 0;
    }
};

思路2:

采用双循环

int majorityElement(vector& nums) {
	int hit = 0;
	int currentElem;
	for (int i = 0; i < nums.size(); i++)
	{
		currentElem = nums[i];
		hit = 0;
		for (int j = 0; j < nums.size(); j++)
		{
			if (nums[j] == currentElem)
			{
				hit++;
				if (hit > nums.size() / 2)
				{
					return currentElem;
				}
			}
		}
	}
	return 0;
}

2016-08-10 12:19:37


本文标题:leetCode169.MajorityElement数组
地址分享:http://azwzsj.com/article/jicoce.html