import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param numbers int整型一维数组 
     * @return int整型
     */
    public int MoreThanHalfNum_Solution (int[] numbers) {
        // write code here
        int mx = -1, cnt = 0;
        for (int x : numbers) {
            if (x == mx) {   // 元素相同相加
                cnt++;
            } else {    // 元素不同
                if (cnt == 0) {   // 需要修改候选数字
                    mx = x; cnt = 1;
                } else {   // 数量减少 最坏的情况是删掉一个众数和非众数
                    cnt--;
                }
            }
        }
        return mx;
    }
}