Entrevista a los 150 mejoresfácil

Buscar en matriz ordenada rotada

Guía detallada e implementación de Python para el problema 'Buscar en matriz ordenada rotada'.

Declaración del problema

fácil

Hay una matriz de números enteros nums ordenada en orden ascendente (con valores distintos). Antes de pasarlo a su función, nums posiblemente se gire en un índice de pivote desconocido k (1 <= k < nums.length) de modo que la matriz resultante sea [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]].

Dado el array nums después de la posible rotación y un número entero target, devuelve el índice de target si está en nums, o -1 si no está en nums.

Debe escribir un algoritmo con una complejidad de tiempo de ejecución O(log n).

Escribe una función search(nums: List[int], target: int) -> int.

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

Ejemplos

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 la posibilidad de utilizar estructuras de datos específicas de la búsqueda binaria, como conjuntos o montones.
Edge Cases to Watch
  • Estructuras de entrada vacías
  • Entradas de un solo elemento
  • Grandes límites numéricos

¿Listo para resolver?

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

Abrir en el 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 recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.