三種方法解決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]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章