Menu
CoddyTech

Binary Search

LeichtBinäre Suchepython iconjava iconcpp iconc iconjs icon+10

Du erhältst eine Liste von Ganzzahlen nums, die aufsteigend sortiert ist und keine wiederholten Werte enthält, sowie eine Ganzzahl target. Gib den Index von target in nums zurück, beginnend bei 0, oder -1, wenn der Wert nicht in der Liste enthalten ist. Strebe eine Laufzeit von O(log n) an. Das bedeutet, dass du dir nicht jedes Element ansehen kannst.

Funktion

search(nums: integer-array, target: integer) → integer
numsinteger-array
die sortierte Liste unterschiedlicher Ganzzahlen
targetinteger
der zu suchende Wert
Gibt zurückinteger
der Index von target in nums oder -1, falls target nicht vorhanden ist

Einschränkungen

  • 1 ≤ nums.length ≤ 104
  • -104 ≤ nums[i], target ≤ 104
  • nums ist streng aufsteigend sortiert, daher kommt jeder Wert genau einmal vor.

Beispiele

Eingabe
nums = [-7, -2, 0, 4, 9, 15, 23]target = 9
Ausgabe
4
Erklärung
nums[4] ist 9. Die Suche betrachtet zuerst den Index 3 (Wert 4, zu klein), dann den Index 5 (Wert 15, zu groß) und schließlich den Index 4, wo sie 9 findet.

lock icon+15 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Wenn nums wiederholte Werte enthalten könnte, wie würdest du den ersten Index von target zurückgeben und dabei weiterhin in O(log n) bleiben?

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

Fall 1

Fall 2

Eingabe

nums = [-7, -2, 0, 4, 9, 15, 23]
target = 9

Erwartet

4