Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: No caso de hoje,vamos jogar um jogo de pular nuvens parecido ao que fizemos a algum tempo atrás. Vejamos mais informações com a explicação detalhada e sua resolução.
jumpingOnClouds -
Há um novo jogo para celular que começa com nuvens numeradas consecutivamente. Algumas das nuvens são trovoadas e outras são cúmulos. O jogador pode pular em qualquer nuvem cumulus com um número igual ao número da nuvem atual mais 1 ou 2.
O jogador deve evitar as trovoadas. Determine o número mínimo de saltos necessários para pular da posição inicial até a última nuvem. É sempre possível ganhar o jogo:
Para cada jogo, você receberá uma série de nuvens numeradas 0 e se for seguro ou 1, deve evitá-la
int c[n]: um array
RETURN = int: o número mínimo de saltos necessários
Vejamos a execução
function jumpingOnClouds(c) {
// Write your code here
let arrCumulus = [];
for(let i=0; i < c.length; i++) {
if(c[i] === 0) {
arrCumulus.push(i);
}
}
for(let i=0; i < arrCumulus.length-2; i++) {
if(arrCumulus[i+2]-arrCumulus[i] === 2) {
arrCumulus.splice(i+1, 1);
}
}
return arrCumulus.length-1;
}
O código acima é uma função chamada jumpingOnClouds que recebe um array chamado c como parâmetro. A função tem como objetivo determinar o número mínimo de pulos necessários para chegar ao final do array, seguindo algumas regras.
O primeiro passo da função é criar um novo array chamado arrCumulus que irá armazenar os índices dos elementos do array c que são iguais a 0. Isso é feito através de um laço for que percorre todo o array c. Se o elemento atual for igual a 0, seu índice é adicionado ao final do array arrCumulus.
Em seguida, a função utiliza um segundo laço for que percorre todo o array arrCumulus, com exceção dos dois últimos elementos. Para cada elemento do array arrCumulus (exceto os dois últimos), é verificado se a distância entre o elemento atual e o elemento dois índices à frente é igual a 2. Se for o caso, o elemento seguinte ao elemento atual é removido do array arrCumulus.
Por fim, a função retorna o comprimento do array arrCumulus menos um, que é o número mínimo de pulos necessários para chegar ao final do array c.
Em resumo, a função jumpingOnClouds determina o número mínimo de pulos necessários para chegar ao final do array c, considerando que o jogador pode pular apenas entre elementos iguais a 0 e pode pular no máximo dois elementos à frente.
O resultado será:
7
0 0 1 0 0 1 0
input: 4
Assim, concluímos mais um Resolvendo problemas no HackerRank:
até a próxima.
Top comments (0)