LeetCode169. Majority Element
阿新 • • 發佈:2018-12-09
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋
times.
You may assume that the array is non-empty and the majority element always exist in the array.
Example 1:
Input: [3,2,3]
Output: 3
Example 2:
Input: [2,2,1,1,1,2,2] Output: 2
<思路>最開始想用字典,統計每個數字出現次數。思路簡單,不過時間上來講比較慢。
import numpy as np class Solution(object): def majorityElement(self, nums): """ :type nums: List[int] :rtype: int """ half = len(nums)/2 dic = {} for num in nums: if num in dic: dic[num] +=1 else: dic[num] = 1 for key,val in dic.items(): if val>half: return key
看discuss裡面有種取巧的方式,很聰明。將陣列排序,然後取中間的數,一行就可以。
import numpy as np
class Solution(object):
def majorityElement(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
return sorted(nums)[len(nums)/2]