Menu
CoddyTech

Find the Duplicate Number

Kamu mendapatkan array nums yang berisi n+1 bilangan bulat, masing-masing antara 1 dan n. Tepat satu nilai muncul lebih dari sekali, mungkin berkali-kali, dan kamu mengembalikan nilai tersebut.

Selesaikan tanpa mengubah nums dan hanya dengan menggunakan jumlah memori tambahan yang konstan.

Fungsi

findDuplicate(nums: integer-array) → integer
numsinteger-array
n+1 bilangan bulat, masing-masing antara 1 dan n
Mengembalikaninteger
nilai yang muncul lebih dari sekali

Batasan

  • 1 ≤ n ≤ 104
  • nums.length == n+1
  • 1 ≤ nums[i] ≤ n
  • Tepat satu nilai muncul dua kali atau lebih; setiap nilai lainnya muncul paling banyak sekali.

Contoh

Input
nums = [2, 5, 1, 3, 5, 4]
Output
5
Penjelasan
Di sini, n bernilai 5, dan 5 berada di posisi 1 dan 4, jadi jawabannya adalah 5. Setiap nilai lainnya dari 1 hingga 5 muncul satu kali.
challenge icon

Pertanyaan lanjutan

Pencarian biner pada nilai memenuhi kedua aturan dalam waktu O(n log n). Bisakah kamu mempertahankannya dalam waktu O(n)?

Reset kode
def findDuplicate(nums):
    # Tulis kodemu di sini

Tes #1

Tes #2

Argumen

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

Output yang diharapkan

5