[LeetCode]Majority Element II

public class Solution {
    public List<Integer> majorityElement(int[] nums) {
        int can1 = 0, can2 = 0, num1 = 0, num2 = 0;
        for (int num : nums) {
            if (num1 == 0 || can1 == num) {
                can1 = num;
                num1 ++;
            } else if (num2 == 0 || can2 == num) {
                can2 = num;
                num2 ++;
            } else {
                num1 --;
                num2 --;
            }
        }
        num1 = 0;
        num2 = 0;
        for (int num : nums) {
            if (num == can1) {
                num1 ++;
            } else if (num == can2) {
                num2 ++;
            }
        }
        List<Integer> result = new ArrayList<Integer>();
        if (num1 > nums.length / 3) {
            result.add(can1);
        }
        if (num2 > nums.length / 3) {
            result.add(can2);
        }
        return result;
    }
}

 

posted @ 2015-11-28 09:07  Weizheng_Love_Coding  阅读(121)  评论(0编辑  收藏  举报