46. Majority Element

题目

https://www.lintcode.com/problem/majority-element/description?_from=ladder&&fromId=2

实现

  1. 设置一个 count ,作为“浮标”,遍历数组。再设置一个 current_major 来记录当前出现次数最多的数
  2. 如果 current_major == nums[i] 那么 count ++,否则 count -- ,这里的 count 就像是浮标一样,如果发现 count 为 0 了,说明当前元素出现次数会 大于等于 之前次数出现较多的元素

代码

class Solution:
    """
    @param: nums: a list of integers
    @return: find a  majority number
    """
    def majorityNumber(self, nums):
        current_major = 0
        count = 0

        for i in range(len(nums)):
            if count == 0:
                current_major = nums[i]

            if nums[i] == current_major:
                count += 1
            else:
                count -= 1

        return current_major

你可能感兴趣的:(46. Majority Element)