题目:
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)算法思想:
初始化记count=1,majority element是maj=num[0]。顺序遍历数组一次即可:当遇到num[i]与maj相等时,count++。遇到num[i]与maj不相等时,如果count>=1,则count--;否则,令num[i]为新的maj,并重新计数count。
(2)代码如下:
class Solution {
public:
int majorityElement(vector
&num) {
int len=num.size();
if(len==0)return -1;
int i=1,maj=num[0],count=1,count2=0;
while(i
=1){
--count;
}else{
maj=num[i];
count=1;
}
++i;
}
for(int i=0;i
len/2)return maj;
else return -1;
}
};