「ソードフィンガーオファー」の配列の繰り返し番号
どこに行くのかわかりませんが、もう途中です! |
会ったことはありませんが、時間は急いでいますが、ユシに会いました。本当に素晴らしい運命です。ご来店ありがとうございました! |
- 問題:
長さnの配列内のすべての数値が0からn-1の範囲にあります。配列内のいくつかの数字が繰り返されていますが、いくつの数字が繰り返されているのかわかりません。それぞれの数字が何回繰り返されるかわかりません。配列の最初の繰り返し番号を見つけてください。たとえば、入力の長さが7配列[2,3,1,0,2,5,3]の場合、対応する出力は最初に繰り返される数値2です。繰り返し番号がない場合は-1を返します。
- 例:
示例 1 :
输入:[2,3,1,0,2,5,3]
返回值:2
class Solution:
def duplicate(self , numbers ):
temp = 0
d = {
}
for i in range(len(numbers)):
d[numbers[i]] = d.get(numbers[i],0) + 1
if d[numbers[i]] == 2:
return numbers[i]
return -1
- アルゴリズムの説明:
ディクショナリを作成し、配列内の要素を1つずつトラバースし、ディクショナリ内の要素数を格納し、要素数が2を超えると現在の要素を返します。