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.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
class Solution { public: int majorityElement(vector<int> &num) { int flag = 0; int n=num.size(); if(n==0) return -1; int res = num[0]; for(int i=1; i<n; i++) { if(num[i]==res) flag++; else { if(flag>0) flag--; else res = num[i]; } } return res; } };
原文地址:http://blog.csdn.net/shaya118/article/details/42775003