169. Majority Element
思路:
设置一个counter,并且用res记录第一个数字,从第二个开始,如果这个数和前一个数是一样的,那么counter++,如果不一样,就把counter--,如果counter变成0了,就把res放到当前数字上。一遍走完,返回res就好了。
因为majority的数字超过一半,它总能中和调别的数。
1 public int majorityElement(int[] nums) { 2 if(nums.length == 0) { 3 return 0; 4 } 5 int counter = 1; 6 int res = nums[0]; 7 for(int i = 1; i < nums.length; i++) { 8 if(nums[i] == res) { 9 counter++; 10 } else { 11 counter--; 12 if(counter == 0) { 13 counter = 1; 14 res = nums[i]; 15 } 16 } 17 } 18 return res; 19 }