Programação CompetitivaFácil

Pesquisar em matriz quase classificada

Guia detalhado e implementação de Python para o problema 'Pesquisar em matriz quase classificada'.

Declaração do problema

Fácil

Escreva uma função search_almost_sorted(arr, target) que procure um valor target em um array quase ordenado arr. Uma matriz quase classificada é aquela em que um elemento que deveria estar no índice i em uma matriz totalmente classificada pode estar no índice i-1, i ou i+1. Retorne o índice baseado em 0 do destino, se encontrado, caso contrário, retorne -1.

Restrições
  • 1 <= len(arr) <= 10^5
  • -10^9 <= arr[i], target <= 10^9
  • All elements in arr are unique.

Exemplos

Example 1
Input
search_almost_sorted([10, 3, 40, 20, 50, 80, 70], 40)
Output
2
Explanation

40 is at index 2 (which is its correct position in a fully sorted version).

Example 2
Input
search_almost_sorted([10, 3, 40, 20, 50, 80, 70], 90)
Output
-1
Explanation

90 does not exist in the array.

Need a Hint?
Considere usar estruturas de dados específicas de Pesquisa e Classificação, 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.