使用摩尔选举,遇到与res一致的,就增加num;反之,减少num
如果,num = 0,那么就更新res为当前的数组值。
public class Solution { public int MoreThanHalfNum_Solution(int[] array) { // 使用摩尔选举 int res = array[0], num = 0; for (int i = 0; i < array.length; ++i) { if (num == 0) { res = array[i]; num++; } else if (array[i] == res) { num++; } else { num--; } } return res; } }