Menu
CoddyTech

Find the Duplicate Number

Du erhältst ein Array nums aus n+1 Ganzzahlen, von denen jede zwischen 1 und n liegt. Genau ein Wert kommt mehr als einmal vor, möglicherweise sehr oft, und du gibst diesen Wert zurück.

Löse die Aufgabe, ohne nums zu verändern und mit nur einer konstanten Menge an zusätzlichem Speicher.

Funktion

findDuplicate(nums: integer-array) → integer
numsinteger-array
n+1 ganze Zahlen, jeweils zwischen 1 und n
Gibt zurückinteger
der Wert, der mehr als einmal vorkommt

Einschränkungen

  • 1 ≤ n ≤ 104
  • nums.length == n+1
  • 1 ≤ nums[i] ≤ n
  • Genau ein Wert kommt zwei- oder mehrmals vor; jeder andere Wert kommt höchstens einmal vor.

Beispiele

Eingabe
nums = [2, 5, 1, 3, 5, 4]
Ausgabe
5
Erklärung
Hier ist n 5, und die 5 steht an den Positionen 1 und 4, also ist die Antwort 5. Jeder andere Wert von 1 bis 5 kommt einmal vor.

lock icon+17 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Die binäre Suche nach Werten hält beide Regeln in einer Zeit von O(n log n). Kannst du sie in einer Zeit von O(n) halten?

Code zurücksetzen
def findDuplicate(nums):
    # Schreibe hier den Code
Testfälle

Fall 1

Fall 2

Eingabe

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

Erwartet

5