LeetCode1394。配列でラッキーナンバーを見つけます
どこに行くのかわかりませんが、もう途中です! |
会ったことはありませんが、時間は急いでいますが、ユシに会いました。本当に素晴らしい運命です。ご来店ありがとうございました! |
- 質問:
整数配列では、整数の出現頻度がその数値と等しい場合、この整数を「ラッキーナンバー」と呼びます。
あなたに整数の配列を与えて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
- コード1:
class Solution:
def findLucky(self, arr: List[int]) -> int:
result = []
for i in range(len(arr)):
if arr.count(arr[i]) == arr[i]:
result.append(arr[i])
if result == []:
return -1
return max(result)
- アルゴリズムの説明:リスト内の
現在の要素の出現回数をカウントしarr[i]
ます。要素の値が出現回数と等しい場合は、その要素をリストに格納し、リスト内の最大の要素を返します。arr
arr.count(arr[i])
result
result