2381 - Lista de Chamada

Um problema bastante tranquilo com várias formas diferenciadas de se resolver, testando sua criatividade e conhecimento de estruturas de linguagem.

Descrição

Solução

Este problema se resume a encontrar o k-ésimo menor elemento em um vetor, onde o k é dado pelo enunciado. Para este problema em específico temos algumas soluções viáveis com suas respectivas complexidades, mas por questão de simplicidade, aqui só vou colocar a mais simples. Mas só à caráter expositivo, as soluções mais eficientes envolvem heaps e até mesmo um algoritmo linear chamado QuickSelect.

Mas, bem, a solução mais simples é ordenar o vetor e escolher o k-ésimo elemento.

Complexidades

Termo assintótico

Tempo

O(n log n) para a ordenação

Espaço adicional

O(1)

Normalmente essa é a primeira maneira que a gente pensa para resolver o problema. São duas simples etapas:

  1. Ordenar o vetor

  2. Retornar o k-ésimo elemento do vetor ordenado

Last updated

Was this helpful?