解題思路 leetcode第229題 求眾數

2021-10-10 16:52:19 字數 899 閱讀 6058

給定乙個大小為 n 的整數陣列,找出其中所有出現超過 ⌊ n/3 ⌋ 次的元素。

高階:嘗試設計時間複雜度為 o(n)、空間複雜度為 o(1)的演算法解決此問題。

示例 1:

輸入:[3,2,3]

輸出:[3]

示例 2:

輸入:nums = [1]

輸出:[1]

示例 3:

輸入:[1,1,1,3,3,2,2,2]

輸出:[1,2]

1 <= nums.length <= 5 * 104

-109 <= nums[i] <= 109

解題思路:本題採用雜湊表的思想解題,利用字典記錄每乙個元素出現的字數。首先建立字典,然後遍歷輸入列表,若當前元素已經在列表中,則將對應value加1,若未出現,則新增進去,value初值設為1。遍歷完成後得到雜湊字典。然後遍歷字典,將value值大於 ⌊ n/3 ⌋的key新增進儲存結果的列表中,最後返回結果列表。**如下:

class

solution

:def

majorityelement

(self, nums: list[

int])-

> list[

int]

: dic =

res =

for i in nums:

if i in dic:

dic[i]+=1

else

: dic[i]=1

t =len(nums)//3

for key in dic.keys():

if dic[key]

> t:

return res

提交後,通過。

Leetcode解題思路

所有簡單題的解題思路。question count the number of prime numbers less than a non negative number,n example input 10output 4explanation there are 4 prime numbers ...

leetcode 95 96 解題思路

95.unique binary search trees ii given an integer n,generate all structurally uniquebst s binary search trees that store values 1 n.example input 3out...

leetcode 160解題思路

題意 求兩個單向鍊錶的交點。要求時間複雜度為o n 空間複雜度為o 1 答案如下 include include using namespace std definition for singly linked list.struct listnode 方法一 unordered map,時間複雜度...