ETH官方钱包

前往
大廳
主題

LeetCode - 1394. Find Lucky Integer in an Array 解題心得

Not In My Back Yard | 2023-01-29 12:00:01 | 巴幣 0 | 人氣 123

題目連結(jié):


題目意譯:
給定一整數(shù)陣列 arr,一個(gè)幸運(yùn)整數(shù)為一整數(shù),其滿足在陣列中的出現(xiàn)次數(shù)恰好等於其值本身。

回傳陣列中的最大幸運(yùn)整數(shù)。如果沒有幸運(yùn)整數(shù),則回傳 -1。

限制:
1 ≦ arr.length ≦ 500
1 ≦ arr[i] ≦ 500



範(fàn)例測(cè)資:
範(fàn)例 1:
輸入: arr = [2,2,3,4]
輸出: 2
解釋: 陣列中唯一一個(gè)幸運(yùn)整數(shù)為 2,因?yàn)?frequency[2] == 2。
(譯者注:是的,這題完全沒有定義 frequency 陣列,單純地憑空生了出來。不管如何,這邊的 frequency[2] 就是指 2 這個(gè)元素的出現(xiàn)次數(shù))。

範(fàn)例 2:
輸入: arr = [1,2,2,3,3,3]
輸出: 3
解釋: 1 、 2 和 3 都是幸運(yùn)整數(shù),回傳它們當(dāng)中最大者。

範(fàn)例 3:
輸入: arr = [2,2,2,3,3]
輸出: -1
解釋: 陣列中沒有幸運(yùn)整數(shù)存在。


解題思維:
因?yàn)?arr 中的數(shù)字最小為 1、最大 500,所以我們可以直接統(tǒng)計(jì) 1 ~ 500 各自在 arr 中出現(xiàn)多少次。

然後從 500 開始掃到 1 為止對(duì)於每種數(shù)字 i 去檢查出現(xiàn)次數(shù)是否恰好是 i 次。如果是就回傳該數(shù)字 i;反之如果沒有這樣的數(shù)字存在,則回傳 -1。




此次分享到此為止,如有任何更加簡(jiǎn)潔的想法或是有說明不清楚之地方,也煩請(qǐng)各位大大撥冗討論。

創(chuàng)作回應(yīng)

追蹤 創(chuàng)作集

作者相關(guān)創(chuàng)作

更多創(chuàng)作