En İyi 150 RöportajKolay

Döndürülmüş Sıralanmış Dizide Ara

'Döndürülmüş Sıralanmış Dizide Arama' sorunu için ayrıntılı kılavuz ve Python uygulaması.

Sorun Bildirimi

Kolay

Artan düzende (farklı değerlerle) sıralanmış bir nums tamsayı dizisi var. İşlevinize aktarılmadan önce, nums muhtemelen bilinmeyen bir pivot indeksi k (1 <= k < nums.length) ile döndürülür ve sonuçta ortaya çıkan dizi [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]] olur.

Olası döndürmeden sonra nums dizisi ve target tamsayısı verildiğinde, nums içindeyse target dizinini veya nums içinde değilse -1 dizinini döndürün.

O(log n) çalışma zamanı karmaşıklığına sahip bir algoritma yazmalısınız.

search(nums: List[int], target: int) -> int adlı bir işlev yazın.

Kısıtlamalar
  • 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

Örnekler

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?
Kümeler veya yığınlar gibi İkili Aramaya özgü veri yapılarını kullanmayı düşünün.
Edge Cases to Watch
  • Boş giriş yapıları
  • Tek eleman girişleri
  • Büyük sayısal sınırlar

Çözmeye Hazır mısınız?

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

Editörde Aç
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

Önerilen Python Kaynakları

İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.