給定乙個大小為 n 的陣列,找到其中的眾數。眾數是指在陣列**現次數大於 ⌊ n/2 ⌋ 的元素。
你可以假設陣列是非空的,並且給定的陣列總是存在眾數。
示例 1:
輸入: [3,2,3]輸出: 3
示例 2:
輸入: [2,2,1,1,1,2,2]乍一看,這道題思路清晰,而且題目還給出提示,照理來說,應該這樣寫:輸出: 2
class solution(object):
def majorityelement(self, nums):
""":type nums: list[int]
:rtype: int
"""for i in nums:
if nums.count(i) > len(nums)/2:
return i
這樣一寫必然出錯,為啥,太耗時間,計算的次數太多不行的。
那怎麼寫呢
class solution(object):
def majorityelement(self, nums):
""":type nums: list[int]
:rtype: int
"""num = {}
for i in nums:
if i in num:
num[i] += 1
else:
num[i] = 1
return max(num.items(),key = lambda x:x[1])[0]
可以這樣寫,構造乙個字典,求出字典中 key 的最大值。
class solution(object):
def majorityelement(self, nums):
""":type nums: list[int]
:rtype: int
"""d = {}
for num in nums:
if num in d:
d[num] += 1
else:
d[num] = 1
for k, v in d.items():
if v > len(nums) // 2:
return k
這樣也可以。
看一下大佬**
class solution(object):
def majorityelement(self, nums):
""":type nums: list[int]
:rtype: int
"""return sorted(nums)[len(nums)/2]
大神一句話的事!省題很重要,題目中假設了每個陣列都有眾數。
求眾數先排序,取中間值。
leetcode刷題python 求眾數
給定乙個大小為 n 的陣列,找到其中的眾數。眾數是指在陣列 現次數大於 n 2 的元素。你可以假設陣列是非空的,並且給定的陣列總是存在眾數。示例 1 輸入 3,2,3 輸出 3示例 2 輸入 2,2,1,1,1,2,2 輸出 2解法一 滿足題幹要求的眾數若存在,則僅可能存在乙個 python cla...
Leetcode刷題01 求兩數之和
題目 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 ...
LeetCode 刷題日記01
找到乙個陣列第三大的數並返回這個數,如果沒有就返回最大的數。param nums return var thirdmax function nums 現在陣列中沒有重複元素了 nums.sort a,b b a return nums.length 2 nums 2 nums 0 tips 這道題包...