- Question:
Given an array of size n, find the majority element. The majority element is the element that appearsmore than
⌊ n/2 ⌋
times.You may assume that the array is non-empty and the majority element always exist in the array.
- Analysis:
这是一道求数组中的众数的问题,且每个数组只有一个众数,其出现超过n/2,所以可以设置一个计数器count=0,当下一个数和当前的数不相等时,count减一,否则加一,如此计数,由于众数最多,所以其出现的时候是count必定大于1.
- Code:
class Solution { public: int majorityElement(vector<int>& nums) { const int n = nums.size(); int count = 0; int result = 0; for (int i=0;i<n;i++) { if (count == 0) { result = nums[i]; count = 1; } else { if (result == nums[i]) { count++; } else { count--; } } } return result; } };