天天看點

【leetcode】求衆數

                                                    求衆數

一、題目描述

給定一個大小為 n 的數組,找到其中的衆數。衆數是指在數組中出現次數大于 ​

​⌊ n/2 ⌋​

​ 的元素。

你可以假設數組是非空的,并且給定的數組總是存在衆數。

示例 1:

輸入: [3,2,3]
輸出: 3      
輸入: [2,2,1,1,1,2,2]
輸出: 2      

二、思路

三、代碼示範

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;
    }