Wawancara 150 TeratasMudah

Cari Dalam Array Terurut yang Diputar

Panduan terperinci dan implementasi Python untuk masalah 'Search In Rotated Sorted Array'.

Pernyataan Masalah

Mudah

Ada array integer nums yang diurutkan dalam urutan menaik (dengan nilai berbeda). Sebelum diteruskan ke fungsi Anda, nums mungkin diputar pada indeks pivot yang tidak diketahui k (1 <= k < nums.length) sehingga array yang dihasilkan adalah [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]].

Mengingat array nums setelah kemungkinan rotasi dan bilangan bulat target, kembalikan indeks target jika berada di nums, atau -1 jika tidak ada di nums.

Anda harus menulis algoritma dengan kompleksitas runtime O(log n).

Tulis fungsi search(nums: List[int], target: int) -> int.

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

Contoh

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?
Pertimbangkan untuk menggunakan struktur data khusus Pencarian Biner seperti kumpulan atau tumpukan.
Edge Cases to Watch
  • Struktur masukan kosong
  • Masukan elemen tunggal
  • Batasan angka yang besar

Siap Memecahkannya?

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

Buka di Editor
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

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.