150 principais entrevistasFácil

Pesquisar em matriz classificada girada

Guia detalhado e implementação de Python para o problema 'Search In Rotated Sorted Array'.

Declaração do problema

Fácil

Existe uma matriz inteira nums classificada em ordem crescente (com valores distintos). Antes de ser passado para sua função, nums é possivelmente girado em um índice pivô desconhecido k (1 <= k < nums.length) de modo que a matriz resultante seja [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]].

Dado o array nums após a rotação possível e um inteiro target, retorne o índice de target se estiver em nums, ou -1 se não estiver em nums.

Você deve escrever um algoritmo com complexidade de tempo de execução O(log n).

Escreva uma função search(nums: List[int], target: int) -> int.

Restrições
  • 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

Exemplos

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?
Considere usar estruturas de dados específicas da pesquisa binária, como conjuntos ou heaps.
Edge Cases to Watch
  • Estruturas de entrada vazias
  • Entradas de elemento único
  • Grandes limites numéricos

Pronto para resolver?

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

Abrir no 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

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.