zoukankan      html  css  js  c++  java
  • 【leetcode❤python】169. Majority Element

    #Method 1
    import math
    class Solution(object):
        def majorityElement(self, nums):
            numsDic={}
            for num in nums:
                numsDic[num]=numsDic[nums]+1 if num in numsDic else 0
                if numsDic[num]>len(nums)/2:
                    return num


    #Method 2
    #这种方法的思想是把 majority element 看成是 1,而把其他的元素看成是 -1。
    #算法首先取第一个元素 x 作为 majority element,并计 mark = 1;
    #而后遍历所有的元素,如果元素和 x 相等, 则 mark ++;
    #否则如果不等, 则 mark--, 如果 mark == 0, 则重置 mark = 1, 并且更新 x 为当前元素。
    #由于majority element 的数量大于一半,所以最后剩下的必然是majority element.

    class Solution(object):
        def majorityElement(self, nums):
            mark=1
            x=nums[0]
            for i in range(1,len(nums)):
               
                if(mark==0):
                    mark=1;x=nums[i]
                elif(nums[i]==x):
                    mark+=1
                elif(nums[i]!=x):
                    mark-=1
           
            return x

  • 相关阅读:
    时装画基础知识--如何画人体
    马士兵java视频学习顺序
    Mysql 中文字符乱码问题
    zendstudio 设置默认编码 utf-8 gbk
    MYSQL 本地无ROOT权限 忘记密码
    windows 3389 远程
    windows 老掉牙CMD的命令
    mysql-常用注入渗透手法
    ubuntu 添加多个IP
    windows下简单配置apache
  • 原文地址:https://www.cnblogs.com/kwangeline/p/5953530.html
Copyright © 2011-2022 走看看