Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: No caso de hoje,vamos inserir a diferença mpinima de valores dentro de um array, baseado na quantidade de pares existentes. Vejamos mais informações com a explicação detalhada e sua resolução.
Minimum Distances -
A distância entre dois valores de matriz é o número de índices entre eles. Dado a, encontre a distância mínima entre qualquer par de elementos iguais na matriz. Se esse valor não existir, retorne -1. Vejamos um exemplo:
- a = [3,2,1,2,3]
Temos dois pares neste array (2 e 3), a diferença do índice i= 0 e j = 4. Então a diferença de d é [i,j] = j-i = 4. No caso de do índice de 2, a diferença é i= 1 e j= 3, fazendo assim j-i = 2.
- Nosso objetivo é retornar o menor valor possível e caso não seja possível, retornar -1.
Vejamos o código:
function minimumDistances(a) {
// Write your code here
let result = [];
for (let i = 0; i < a.length; i++) {
for (let j = i + 1; j < a.length; j++) {
if (a[i] === a[j]) {
result.push(Math.abs(i - j))
}
}
}
if (result.length === 0) {
return -1
}
else {
return Math.min(...result)
}
}
Criamos uma variável chamada resultque irá receber um array vazio até então. Logo após isso, iniciamos um loop com um index chamado i que inicia em 0 e enquanto for menor que o comprimento de a(onde está reservado todos os valores do array), ele deve adicionar mais um.
Fazemos o mesmo agora declarando um index chamado j que irá receber o valor de i+ 1, enquanto ele for menor que o comprimento de a, e também adicionará mais um. Após isso criamos um ifque caso o a[i] seja igual ao a[j], iremos lançar o valor absoluto em result com a diferença entre eles.
E caso o valor seja igual a 0, retornaremos -1, fora disso, o menor valor de diferença.
O resultado será:
6
7 1 3 4 1 7
input: 3
Assim, concluímos mais um Resolvendo problemas no HackerRank: até a próxima.
Top comments (0)