leetcode 刷题
#169 多数元素-摩尔投票法
方法一:排序后,取n/2的方法:
class Solution {
public int majorityElement(int[] nums) {
Arrays.sort(nums);
return nums[nums.length/2];
}
}
方法二:不相同的两数相互抵消的方法,抵消完还剩的就是多数元素。
class Solution {
public int majorityElement(int[] nums) {
int candidate = nums[0];
int count = 1;
for (int i=1 ;i < nums.length; i++){
if (nums[i] == candidate){
count++;
}
else{
count--;
if (count == 0){
candidate = nums[i];
count = 1;
}
}
}
return candidate;
}
}
思考为什么会有这个方法?怎么提出来的,出发点在哪里。