LeetCode(169)——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.

Example 1:

Input: [3,2,3]
Output: 3

Example 2:

Input: [2,2,1,1,1,2,2]
Output: 2

 

可以用Map求解,但效率不高,這裏用的Boyer-Moore摩爾投票法

AC:

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章