Leetcode #229 Majority Element II

public static List majorityElement(int[] nums) {
         if(nums.length==0)
                return new LinkedList<>();
        List ls = new LinkedList<>();
        int num1=nums[0],num2=nums[0],cnt1=0,cnt2=0;
        for(int i=0,len=nums.length;inums.length/3)
            ls.add(num1);
        if(cnt2>nums.length/3)
            ls.add(num2);
        System.out.println(cnt1+" "+num1);
        System.out.println(cnt2+" "+num2);
        return ls;
    }

首先,一个数组中出现次数大于n/3的数字最多只可能有两个,所以建立两个候选数字。
再遍历数组,若和其中一个候选数字相同,则计数+1,否则-1。

你可能感兴趣的:(Leetcode #229 Majority Element II)