169. Majority Element

1. 问题描述

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.
Tags: Array Divide and Conquer Bit Manipulation
Similar Problems: (M) Majority Element II

2. 解题思路

  • 详见《剑指offer》

3. 代码

 1 class Solution {
 2 public:
 3     int majorityElement(vector<int>& nums) 
 4     {
 5         int lastNum = nums[0];
 6         int count = 0;
 7         for (int i=0; i<nums.size(); i++)
 8         {
 9             if (lastNum == nums[i])
10             {
11                 count++;
12             }
13             else
14             {
15                 count--;
16                 if (0 == count)
17                 {
18                     lastNum = nums[i];
19                     count++;
20                 }
21             }            
22         }
23         return lastNum;
24     }
25 };

4. 反思

原文地址:https://www.cnblogs.com/whl2012/p/5612264.html