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 result
que 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 if
que 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)