一. 题目

二. 思路

1. 哈希表

  • 时间:O(n)

  • 空间:O(n)

2. 排序

3. 分治

4. Boyer-Moore 投票算法

三. 代码

4. Boyer-Moore 投票算法

class Solution
{
    public int majorityElement(int[] nums)
    {
        int num = 0, cnt = 0;
        for (int i = 0; i < nums.length; ++i)
        {
            if (cnt == 0) num = nums[i];
            cnt += (num == nums[i] ? 1 : -1);
        }
        return num;
    }
}