Top 150-InterviewEinfach

Suche im gedrehten sortierten Array

Detaillierte Anleitung und Python-Implementierung für das Problem „Suche in gedrehtem sortierten Array“.

Problemstellung

Einfach

Es gibt ein ganzzahliges Array nums, das in aufsteigender Reihenfolge sortiert ist (mit unterschiedlichen Werten). Vor der Übergabe an Ihre Funktion wird nums möglicherweise an einem unbekannten Pivot-Index k (1 <= k < nums.length) rotiert, sodass das resultierende Array [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]] ist.

Geben Sie bei gegebenem Array nums nach der möglichen Rotation und einer Ganzzahl target den Index von target zurück, wenn er in nums ist, oder -1, wenn er nicht in nums ist.

Sie müssen einen Algorithmus mit einer Laufzeitkomplexität von O(log n) schreiben.

Schreiben Sie eine Funktion search(nums: List[int], target: int) -> int.

Einschränkungen
  • 1 <= len(nums) <= 5000
  • -10^4 <= nums[i] <= 10^4
  • All values of nums are unique
  • nums is an ascending array that is possibly rotated
  • -10^4 <= target <= 10^4

Beispiele

Example 1
Input
nums = [4, 5, 6, 7, 0, 1, 2], target = 0
Output
4
Explanation

0 is found at index 4.

Example 2
Input
nums = [4, 5, 6, 7, 0, 1, 2], target = 3
Output
-1
Explanation

3 is not in the array.

Example 3
Input
nums = [1], target = 0
Output
-1
Explanation

0 is not in the array.

Need a Hint?
Erwägen Sie die Verwendung spezieller Datenstrukturen für die binäre Suche wie Mengen oder Heaps.
Edge Cases to Watch
  • Leere Eingabestrukturen
  • Einzelelementeingaben
  • Große numerische Grenzen

Bereit zur Lösung?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Im Editor öffnen
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.