天天看點

leetCode:求衆數

   假設第一個元素為衆數,計數器置為1,周遊數組,當遇到相同的元素時,計數器加1,否則減1,任何電腦為0的時候,就假設下一個元素為衆數,計數器再置為1。循環結束時,傳回我們假設的衆數,即要求的衆數。 

public int majorityElement(int[] nums) {
        int result = nums[0];
        int times = 1;
        for (int i = 1; i < nums.length; i++) {
            if (result == nums[i]) {
                times++;
            } else {
                times--;
                if (times == 0) {
                    result = nums[++i];
                    times++;
                }
            }
        }
        return result;
    }