leetcode 153: Majority Element

Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.

You may assume that the array is non-empty and the majority element always exist in the array.

Credits:
Special thanks to @ts for adding this problem and creating all test cases.


public class Solution {
    public int majorityElement(int[] num) {
        // assuming the num is not null and empty.
        
        int most = num[0];
        int counter = 1;
        
        for(int i=1; i<num.length; i++) {
            if(num[i] == most) {
                ++counter;
            } else {
                if(counter==0) {
                    most = num[i];
                    ++counter;
                } else {
                    --counter;
                }
            }
        }
        return most;
    }
}


原文地址:https://www.cnblogs.com/lxjshuju/p/7299107.html