在整數陣列中,如果乙個整數的出現頻次和它的數值大小相等,我們就稱這個整數為「幸運數」。
給你乙個整數陣列 arr,請你從中找出並返回乙個幸運數。
如果陣列中存在多個幸運數,只需返回 最大 的那個。
如果陣列中不含幸運數,則返回 -1 。
示例 1:
輸入:arr = [2,2,3,4]示例 2:輸出:2
解釋:陣列中唯一的幸運數是 2 ,因為數值 2 的出現頻次也是 2 。
輸入:arr = [1,2,2,3,3,3]示例 3:輸出:3
解釋:1、2 以及 3 都是幸運數,只需要返回其中最大的 3 。
輸入:arr = [2,2,2,3,3]示例 4:輸出:-1
解釋:陣列中不存在幸運數。
輸入:arr = [5]示例 5:輸出:-1
輸入:arr = [7,7,7,7,7,7,7]輸出:7
1 <= arr.length <= 500
1 <= arr[i] <= 500
class
solution
:def
findlucky
(self, arr)
: res =
set_arr =
set(arr)
for i in set_arr:
if arr.count(i)
== i:
iflen
(res)==0
:return-1
res.sort(
)return res[-1
]
還有一種不用定義res為列表的方法:
class
solution
:def
findlucky
(self, arr)
: res =-1
set_arr =
set(arr)
for i in set_arr:
if arr.count(i)
== i and i > res:
res = i
return res
5368 找出陣列中的幸運數
在整數陣列中,如果乙個整數的出現頻次和它的數值大小相等,我們就稱這個整數為 幸運數 給你乙個整數陣列 arr,請你從中找出並返回乙個幸運數。如果陣列中存在多個幸運數,只需返回 最大 的那個。如果陣列中不含幸運數,則返回 1 示例 1 輸入 arr 2,2,3,4 輸出 2 解釋 陣列中唯一的幸運數是...
每日一題 45 陣列中的逆序對
題目來自劍指offer 題目 舉例 思路 方法 1 暴力方法 對於陣列中任意兩個數,均做一次判定,判斷是否為逆序對。時間複雜度 o n 2 方法 2 類似於歸併排序。1 首先把陣列分成兩個長度均等的陣列 2 分布對這兩個陣列排序 小到大 3 之後再求逆序對,同時對把這兩個陣列合併到乙個陣列 時間複雜...
LeetCode 每日一題 陣列中數字出現的次數
陣列中數字出現的最大次數 乙個整型陣列 nums 裡除兩個數字之外,其他數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。要求時間複雜度是o n 空間複雜度是o 1 示例 1 輸入 nums 4,1,4,6 輸出 1,6 或 6,1 示例 2 輸入 nums 1,2,10,4,1,4,3,3 輸...