思路:抵消法侈询,記錄當(dāng)前元素ret,初始數(shù)量為num=0糯耍;從前到后遍歷扔字,發(fā)現(xiàn)遍歷到的元素和ret相同,num++, 否則num--, 如果num==0温技,則ret變成當(dāng)前元素革为。
public class MostNum {
public static void main(String[] args) {
int[] array = new int[]{1, 2, 3, 4, 2, 2, 2, 2, 5, 6, 2, 2};
int res = mostNum(array);
System.out.println(res);
}
public static int mostNum(int[] array) {
int num = 0;
int ret = Integer.MIN_VALUE;
for (int i = 0; i < array.length; i++) {
if (ret == array[i]) {
num++;
} else {
if (num == 0) {
ret = array[i];
} else {
num--;
}
}
}
return ret;
}
}