2つのリスト(1からN(arr)までの一連の数字と同じシーケンスが混在していますが、1つの数字(mixed_arr)がないことを考慮)。目標は、削除された番号を見つけることです。リストから削除された番号を見つける
例:
arr = [1,2,3,4,5]
mixed_arr = [3,4,1,5]
全く数が削除されなかった場合と違い がなければ何の数がアレイ及びそれに差がないから削除されなかった場合は出力は2
戻り0でなければなりません関数は0を返す必要があります.Nは1以下になることがあります(後者の場合、最初の配列は[]になります)。
テストケース:
arr = [1,2,3,4,5,6,7,8,9]
mixed_arr = [1,9,7,4,6,2,3,8]
output = 5
arr = [1,2,3,4,5,6,7,8,9]
mixed_arr = [5,7,6,9,4,8,1,2,3]
output = 0
はここに私のコードです:
def find_deleted_number(arr, mixed_arr):
arr.sort()
mixed_arr.sort()
for x in range(arr):
for y in range(mixed_arr):
if arr[x] != mixed_arr[y]:
return arr[x]
elif arr[x] == mixed_arr[y]:
return 0
私が手にエラーがある:
Traceback:
in <module>
in find_deleted_number
TypeError: 'list' object cannot be interpreted as an integer
範囲(arr): 'と' for x in range(mixed_arr): 'の範囲を削除し、' arr [x] '、' x'だけを呼び出す必要はない – PRMoureu
あなたの問題はリストオブジェクトを 'range()'関数に渡そうとしています。しかし、 'range()'は整数しか受け付けないので、Pythonは文句を言います。 –
range()を削除するだけでなく、xとyはインデックスではなく配列内の値になります。 – Bryan