码迷,mamicode.com
首页 > 编程语言 > 详细

leetCode 169. Majority Element 数组

时间:2016-08-10 14:33:08      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:数组

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.


思路1:

使用map来处理。

class Solution {
public:
    int majorityElement(vector<int>& nums) {
    	map<int, int> record;
    	for (int i = 0; i < nums.size(); i++)
    	{
    		if (record.find(nums[i]) == record.end())
    		{
    			record.insert(pair<int, int>(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<int>& 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

本文出自 “做最好的自己” 博客,请务必保留此出处http://qiaopeng688.blog.51cto.com/3572484/1836477

leetCode 169. Majority Element 数组

标签:数组

原文地址:http://qiaopeng688.blog.51cto.com/3572484/1836477

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!