基本陣列題 統計最多出現次數的偶數 Leetcode #2404 Most Frequent Even Element

閱讀時間約 3 分鐘
raw-image

這題的題目在這裡:

題目敘述

題目會給定我們一個陣列,要求我們找出裡面統計最多出現次數的偶數

假如有兩個偶數出現的次數一樣多,取最數字比較小的那個最為答案。


測試範例

Example 1:

Input: nums = [0,1,2,2,4,4,1]
Output: 2
Explanation:
The even elements are 0, 2, and 4. Of these, 2 and 4 appear the most.
We return the smallest one, which is 2.
2出現兩次
4出現兩次
2比4小,選2 (平手時的規則)

Example 2:

Input: nums = [4,4,4,9,2,4]
Output: 4
Explanation: 4 is the even element appears the most.
4出現4
2出現1

Example 3:

Input: nums = [29,47,21,41,13,37,25,7]
Output: -1
Explanation: There is no even element.
沒有偶數​

約束條件

Constraints:

  • 1 <= nums.length <= 2000
  • 0 <= nums[i] <= 105

演算法

先過濾掉奇數部分,只留下偶數。

再用字典統計出現次數,次數最多的偶數留下來。

假如有兩個偶數出現的次數一樣多,取最數字比較小的那個最為答案。


程式碼

class Solution:
 def mostFrequentEven(self, nums: List[int]) -> int:
  target = -1
  frequency = Counter()
  
  for number in nums:

   # skip odd numbers
   if number % 2: continue

   frequency[number] += 1
   
   # update even element with largest frequency
   if frequency[number] > frequency[target] or frequency[number] == frequency[target] and number < target:
    target = number

  return target

複雜度分析

時間複雜度:

O( n ) 從左到右,每個數字複掃描一次。

空間複雜度:

O( n ) 建立了一個字典,最大可能的佔用空間和陣列長度一樣長O(n)


關鍵知識點

計數類Counting的應用題,想到比較適合的對應底層支持資料結構是字典、雜湊映射表(dictionary, hash map)


Reference:

[1] LeetCode - The World's Leading Online Programming Learning Platform

avatar-img
88會員
425內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
題目會給定我們一個陣列,陣列長度為n。 要求我們找出裡面出現次數超過 n / 3次的數字。
題目會給定我們一個輸入陣列,裡面的字母A和字母B分別代表兩種顏色的卡片。 假如某張卡片的左右都是相同的,例如AAA,Alice可以抽掉中間那張A。 同樣的,假如某張卡片的左右都是相同的,例如BBB,Bob可以抽掉中間那張B。 請問Alice和Bob輪流玩抽卡遊戲, 請問最後是誰贏?
題目給定一個已排序的輸入陣列,陣列裡面的數字自分別代表每篇論文的被引用數。 要求我們計算h-index。 h-index的定義: 找一個最大的h值,使得有h篇論文,個別論文的被引用數都 大於等於 h
題目給定一個輸入陣列,陣列裡面的數字自分別代表每篇論文的被引用數。 要求我們計算h-index。 h-index的定義: 找一個最大的h值,使得有h篇論文,個別論文的被引用數都 大於等於 h
題目會給定兩個參數,一個是底數x,一個是次方n。要求我們計算出x^n。 要求實作myPow(self, x: float, n: int) -> float 函數的內部邏輯。 也就是說,不可以呼叫程式語言內建計算指數的library
1. 競賽題 或者 面試題 Medium Hard 以上題目,一開始在第一時間想不出解題思路,或者最佳解是很平常的事情。 通過官方解答、討論區的高手分享解題,進而學到新的解題思路,或者更泛用的演算法框架,就是最大的收穫。 2. 但是Easy分類的題目,通常就是該領域最基礎的題目,應該要
題目會給定我們一個陣列,陣列長度為n。 要求我們找出裡面出現次數超過 n / 3次的數字。
題目會給定我們一個輸入陣列,裡面的字母A和字母B分別代表兩種顏色的卡片。 假如某張卡片的左右都是相同的,例如AAA,Alice可以抽掉中間那張A。 同樣的,假如某張卡片的左右都是相同的,例如BBB,Bob可以抽掉中間那張B。 請問Alice和Bob輪流玩抽卡遊戲, 請問最後是誰贏?
題目給定一個已排序的輸入陣列,陣列裡面的數字自分別代表每篇論文的被引用數。 要求我們計算h-index。 h-index的定義: 找一個最大的h值,使得有h篇論文,個別論文的被引用數都 大於等於 h
題目給定一個輸入陣列,陣列裡面的數字自分別代表每篇論文的被引用數。 要求我們計算h-index。 h-index的定義: 找一個最大的h值,使得有h篇論文,個別論文的被引用數都 大於等於 h
題目會給定兩個參數,一個是底數x,一個是次方n。要求我們計算出x^n。 要求實作myPow(self, x: float, n: int) -> float 函數的內部邏輯。 也就是說,不可以呼叫程式語言內建計算指數的library
1. 競賽題 或者 面試題 Medium Hard 以上題目,一開始在第一時間想不出解題思路,或者最佳解是很平常的事情。 通過官方解答、討論區的高手分享解題,進而學到新的解題思路,或者更泛用的演算法框架,就是最大的收穫。 2. 但是Easy分類的題目,通常就是該領域最基礎的題目,應該要
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
中土佐町位於高知縣中西部,面向太平洋海岸,東邊是土佐灣,本町大致分為沿海區域和海拔300公尺以上、四面環山的台地區域,由於各自的歷史和氣候,兩個地區都形成了獨特的文化,祖先在利用地理特色的同時,也過著繁榮的生活;四萬十川流蜿蜒流經町內,兩岸有耕地,村莊星羅棋布,當地人口多集中在沿海地區,位於中心地區
Thumbnail
題目會給我們一個方陣,要求我們計算兩條對角線的元素總和。
Thumbnail
首先講解一下我這個挑戰的規則 我選擇的基本規則是參考這個連結 規則 1. 壽命正常 2. 性格必須要有 物質主義 - 勢力 - 浪漫 - (終生連環浪漫) 3. 和模擬市民培養感情結婚 (辦派對) 4. 結婚玩辦家庭聚會 (需銀牌) 5. 家庭派對結束後 讓丈夫發現婚外情並把他殺死
Thumbnail
題目會給定我們一個陣列,要求我們找出裡面統計最多出現次數的偶數 。 假如有兩個偶數出現的次數一樣多,取最數字比較小的那個最為答案。
Thumbnail
人對於死亡和疾病的恐懼幾乎已經是植根在心底裡,生病了就要看醫生早就成為「常理」,寧願依靠藥物卻不反省自己的抵抗力為何薄弱等,總總問題其實也只是人性遊戲的一部分而已。但既然是人性,那亦就沒有「對錯」可言,到頭來就只有「靈砂紀錄」。
Thumbnail
C# 陣列 – (C#教學) – Array為程式設計中最基本元素之一. 陣列就是用一個variable記下多個同類的值(記憶體中的位置), 以供日後所調用. 相關頁面: C# List – 學會List的5種基本應用方法 – 初始化, 加入值, 更新值, 刪除值, foreach迴圈
Thumbnail
因為要讓所有出生在世上的人們站在公平的機會點上,唯一的一個方法,我們無法在道德上祈求富有的人們都能夠無私救濟窮苦,分享他們的財富,也無法讓所有的人都生在富有的家庭,無法讓所有人都成為聖人有高尚的道德,讓貧窮自己消失,只能夠透過一種公平制度來達到此一目標。
Thumbnail
說到摩托車的轉向,大部分人想到的就是要傾斜,然後車子壓得越低、過彎速度越快 在基本訓練中,操作的核心最終目的就是要讓摩托車自體轉向,而摩托車轉向的動踏大體上包含了舵角跟傾角,這兩者其實在摩托車的機械設計上就是讓摩托車自動產生,所以基本訓練中的三大核心是加速動作、減速動作跟傾倒時機
Thumbnail
當然若要充分發揮車子的性能還是必須經過調校跟適應才能更加提高對車子下達指令的強度,但要怎麼從繞錐的操作轉移到具體應用上呢? 當然實際日常駕駛的應用上,畢竟騎乘強度沒那麼高,動作做得細微就可以收到效果,但訓練是為了要讓你養成這樣的操作反應,在突如其來的強力操作時能自然反應出來化解危機
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
中土佐町位於高知縣中西部,面向太平洋海岸,東邊是土佐灣,本町大致分為沿海區域和海拔300公尺以上、四面環山的台地區域,由於各自的歷史和氣候,兩個地區都形成了獨特的文化,祖先在利用地理特色的同時,也過著繁榮的生活;四萬十川流蜿蜒流經町內,兩岸有耕地,村莊星羅棋布,當地人口多集中在沿海地區,位於中心地區
Thumbnail
題目會給我們一個方陣,要求我們計算兩條對角線的元素總和。
Thumbnail
首先講解一下我這個挑戰的規則 我選擇的基本規則是參考這個連結 規則 1. 壽命正常 2. 性格必須要有 物質主義 - 勢力 - 浪漫 - (終生連環浪漫) 3. 和模擬市民培養感情結婚 (辦派對) 4. 結婚玩辦家庭聚會 (需銀牌) 5. 家庭派對結束後 讓丈夫發現婚外情並把他殺死
Thumbnail
題目會給定我們一個陣列,要求我們找出裡面統計最多出現次數的偶數 。 假如有兩個偶數出現的次數一樣多,取最數字比較小的那個最為答案。
Thumbnail
人對於死亡和疾病的恐懼幾乎已經是植根在心底裡,生病了就要看醫生早就成為「常理」,寧願依靠藥物卻不反省自己的抵抗力為何薄弱等,總總問題其實也只是人性遊戲的一部分而已。但既然是人性,那亦就沒有「對錯」可言,到頭來就只有「靈砂紀錄」。
Thumbnail
C# 陣列 – (C#教學) – Array為程式設計中最基本元素之一. 陣列就是用一個variable記下多個同類的值(記憶體中的位置), 以供日後所調用. 相關頁面: C# List – 學會List的5種基本應用方法 – 初始化, 加入值, 更新值, 刪除值, foreach迴圈
Thumbnail
因為要讓所有出生在世上的人們站在公平的機會點上,唯一的一個方法,我們無法在道德上祈求富有的人們都能夠無私救濟窮苦,分享他們的財富,也無法讓所有的人都生在富有的家庭,無法讓所有人都成為聖人有高尚的道德,讓貧窮自己消失,只能夠透過一種公平制度來達到此一目標。
Thumbnail
說到摩托車的轉向,大部分人想到的就是要傾斜,然後車子壓得越低、過彎速度越快 在基本訓練中,操作的核心最終目的就是要讓摩托車自體轉向,而摩托車轉向的動踏大體上包含了舵角跟傾角,這兩者其實在摩托車的機械設計上就是讓摩托車自動產生,所以基本訓練中的三大核心是加速動作、減速動作跟傾倒時機
Thumbnail
當然若要充分發揮車子的性能還是必須經過調校跟適應才能更加提高對車子下達指令的強度,但要怎麼從繞錐的操作轉移到具體應用上呢? 當然實際日常駕駛的應用上,畢竟騎乘強度沒那麼高,動作做得細微就可以收到效果,但訓練是為了要讓你養成這樣的操作反應,在突如其來的強力操作時能自然反應出來化解危機