Python3做LeetCode:169.多数元素

题目就不写了,给大家分析一下题眼8:

  • 数组内某元素出现的次数要>数组长度/2
  • 给定的数组总是存在多数元素,意思是数组有且仅有一个多数元素

其实这道题说白了就是找众数,而且测试用例还有一个特殊情况就是给定数组长度为1的数组,这个情况要考虑到。

官方给出了好几种解题方式,最后一种投票法很有灵性但是我没太撸清楚,不过不重要,我们小白学算法考虑的是找到一种解题的方式,等慢慢熟练了再去考虑优化的事情。

class Solution:
    def majorityElement(self, nums: List[int]) -> int:
        record={}
        n = len(nums)
        if n == 1:
            return nums[0]
        for i in nums:
            if i not in record:
                record[i] = 1
            else:
                record[i]+=1
                if record[i] > n // 2:
                    return i

我本来想用哈希表,但是不知道怎么用python表示哈希表,就用字典代替了。
Python3做LeetCode:169.多数元素_第1张图片

你可能感兴趣的:(算法,Python,leetcode,算法,python)