Exercício Fácil: Caminho mais curto


Você está se conectando a uma API de um sistema que fornece os dados em grupos de 2 e uma lógica de lista duplamente encadeada para controle de acesso a registros. Devido a forma como ela foi construída para não permitir o acesso por índices ou acesso aos dados de nenhuma outra forma, atualmente é necessário fazer uma busca sequencial (de nó em nó) para achar o registro desejado.

Considerando o seguinte:

  • Você tem acesso ao primeiro e ao ultimo nó e pode navegar a partir de ambos
  • O primeiro nó tem ID = 0 e caso exista um segundo item, a API retornará itens com id 0 e 1.
  • O último item está na posição N.
  • Acessar as pontas (início e fim) tem peso 0, enquanto navegar para qualquer direção tem peso 1.

Complete a função JavaScript caminhoMaisCurto que receberá dois valores: ultimoItem, buscarPorItem

function caminhoMaisCurto(ultimoItem, buscarPorItem){
    //seu código aqui
}

Exemplo:

Entrada de dados:

utlimoItem = 6

buscarPorItem = 2

Saída de dados:

1

Explicação:

Ao navegar do começo ao fim, você a começara com acesso aos itens 0 e 1. Ao avançar na lista 1 passo você receberá os itens 2 e 3.

Ao navegar da do fim ao começo você começará com acesso ao item 6. Ao voltar na lista 1 passo você terá acesso aos itens 5 e 4. Ao voltar mais 1 passo, você terá acesso aos itens 2 e 3.


Faça o download do arquivo abaixo para testar seu código:

[download id=”827″]

Precisando de uma ajudinha? Veja algumas formas de resolver essa questão no arquivo abaixo:

[download id=”830″]

Deixe um comentário