可以达到O(n)而不用使用map。
class Solution {
public:
int majorityElement(vector<int>& nums) {
int cnt = 0;
int cur = 0;
for (int n : nums) {
if (cnt == 0) {
cnt = 1;
cur = n;
} else if (n == cur) {
cnt++;
} else {
cnt --;
}
}
return cur;
}
};
2018-10-27
16
榨汁机2号
摩尔投票法,O(n)的时间复杂度
public int majorityElement(int[] nums) {
int num = 0;
int count = 0;
for(int n : nums){
if (count == 0) num = n;
count = n == num ? ++count : --count;
}
return num;
}