Menu
CoddyTech

Find the Duplicate Number

Her biri 1 ile n arasında olan n+1 tam sayıdan oluşan bir nums dizisi alırsın. Tam olarak bir değer, belki birçok kez olmak üzere, birden fazla kez görünür ve bu değeri döndürürsün.

nums dizisini değiştirmeden ve yalnızca sabit miktarda ek bellek kullanarak çöz.

Fonksiyon

findDuplicate(nums: integer-array) → integer
numsinteger-array
n+1 tam sayı, her biri 1 ile n arasında
Döndürürinteger
birden fazla görünen değer

Kısıtlar

  • 1 ≤ n ≤ 104
  • nums.length == n+1
  • 1 ≤ nums[i] ≤ n
  • Tam olarak bir değer iki veya daha fazla kez görünür; diğer her değer en fazla bir kez görünür.

Örnekler

Girdi
nums = [2, 5, 1, 3, 5, 4]
Çıktı
5
Açıklama
Burada n 5'tir ve 5, 1 ve 4. konumlarda yer alır; bu nedenle cevap 5'tir. 1'den 5'e kadar olan diğer tüm değerler bir kez görünür.

lock iconGönderirken +17 gizli test

challenge icon

Ek soru

Değerler üzerinde ikili arama, her iki kuralı da O(n log n) zamanda tutar. Bunları O(n) zamanda tutabilir misin?

Kodu sıfırla
def findDuplicate(nums):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Girdi

nums = [2, 5, 1, 3, 5, 4]

Beklenen

5