0
点赞
收藏
分享

微信扫一扫

【LeetCode】169. 多数元素

止止_8fc8 2022-03-17 阅读 46


 

 解题思路:

一)哈希

        lt = {}        
        for i in range(len(nums)):
            lt[nums[i]] = lt.get(nums[i],0)+1    #将每个元素加入并计算个数
            if lt[nums[i]] > len(nums)/2:
                return nums[i]

二)排序计算

        nums.sort()
        return nums[len(nums)//2]

三)摩尔投票

 下图为本人对其理解,清空并不是真正清空而是要换了对象

        temp = 0         #保存元素
        count = 0        #计数器
        for i in range(len(nums)):    #遍历列表
            if count == 0:    
                temp = nums[i]        #确定保存元素
                count += 1 
            elif nums[i] == temp:    #相等个数加一
                count += 1
            else:
                count -= 1        #否则减一
        return temp    #最后的保存元素
举报

相关推荐

0 条评论