每日一題 找出陣列中的幸運數

2021-10-22 00:23:42 字數 1327 閱讀 1284

在整數陣列中,如果乙個整數的出現頻次和它的數值大小相等,我們就稱這個整數為「幸運數」。

給你乙個整數陣列 arr,請你從中找出並返回乙個幸運數。

如果陣列中存在多個幸運數,只需返回 最大 的那個。

如果陣列中不含幸運數,則返回 -1 。

示例 1:

輸入:arr = [2,2,3,4]

輸出:2

解釋:陣列中唯一的幸運數是 2 ,因為數值 2 的出現頻次也是 2 。

示例 2:

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

輸出:3

解釋:1、2 以及 3 都是幸運數,只需要返回其中最大的 3 。

示例 3:

輸入:arr = [2,2,2,3,3]

輸出:-1

解釋:陣列中不存在幸運數。

示例 4:

輸入:arr = [5]

輸出:-1

示例 5:

輸入: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 輸...