150 najlepszych wywiadówŁatwe

Szukaj w obróconej posortowanej tablicy

Szczegółowy przewodnik i implementacja Python dla problemu „Wyszukaj w obróconej tablicy posortowanej”.

Oświadczenie o problemie

Łatwe

Istnieje tablica liczb całkowitych nums posortowana w porządku rosnącym (z różnymi wartościami). Przed przekazaniem do funkcji nums jest prawdopodobnie obracany o nieznany indeks przestawny k (1 <= k < nums.length) w taki sposób, że wynikową tablicą jest [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]].

Biorąc pod uwagę tablicę nums po możliwym obrocie i liczbę całkowitą target, zwróć indeks target, jeśli znajduje się on w nums, lub -1, jeśli nie znajduje się w nums.

Musisz napisać algorytm o złożoności czasu wykonania O(log n).

Napisz funkcję search(nums: List[int], target: int) -> int.

Ograniczenia
  • 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

Przykłady

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?
Rozważ użycie struktur danych specyficznych dla wyszukiwania binarnego, takich jak zestawy lub sterty.
Edge Cases to Watch
  • Puste struktury wejściowe
  • Wejścia jednoelementowe
  • Duże granice liczbowe

Gotowy do rozwiązania?

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

Otwórz w Edytorze
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

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.