三种方法解决Leetcode169. Majority Element in Python

1. dictionary 

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

        if len(nums)==0:
            return None

        d = {} 
    
        for value in nums:
            if value not in d:
                d[value]=1
            else:
                d[value]+=1
    
        if max(d.values())>0.5*len(nums):
            return max(d, key=d.get)
        else:
            return None

2. use list.count(), Lintcode上可以过,leetcode上会显示Time Exceed. 当做参考

class Solution:
    """
    @param: nums: a list of integers
    @return: find a  majority number
    """
    def majorityNumber(self, nums):
        
        if len(nums)==0:
            return None
        
    
        max_count=-1000
        
        for value in nums:
            
            count = nums.count(value)
            if count>max_count:
                max_count=count
                major=value
            else:
                continue
        
        if max_count>0.5*len(nums):
            return major
        else:
            return None

3. use set

class Solution:
    """
    @param: nums: a list of integers
    @return: find a  majority number
    """
    def majorityNumber(self, nums):
       
        if len(nums)==0:
            return None
        
        return [ele for ele in set(nums) if nums.count(ele)>0.5*len(nums)][0]

 

你可能感兴趣的:(蜗牛选手王豆逗的刷题之路)