Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: no problema precisamos construir um array giratório que pega o último elemento e o retorna ao início do array, e fará isso por um determinado número de vezes. Vejamos agora.
Circular Array Rotation
Neste desafio mental fictício criado, John Watson conhece uma operação chamada rotação circular reta em uma matriz de números inteiros. Uma operação de rotação move o último elemento da matriz para a primeira posição e desloca todos os elementos restantes para a direita. Para testar as habilidades de Sherlock, Watson fornece a Sherlock uma matriz de números inteiros. Sherlock deve executar a operação de rotação várias vezes e determinar o valor do elemento em uma determinada posição.
Para cada array, execute um número de rotações circulares à direita e retorne os valores dos elementos nos índices fornecidos.
- a =[3,4,5] //array
- k=2 // número de rotações em
a
- queries=[1,2]// lista de indices a relatar.
Vejamos a execução deste código:
function circularArrayRotation(a, k, queries) {
// Write your code here
for(let i=0; i<k; i++) {
let lastElement = a.pop()
a.unshift(lastElement)
}
return queries.map(q => a[q]);
}
A função tem os parâmetros antes descritos( a,k e queries). Criamos um laço de repetição que irá iterar com base no número de rotações destinadas a k
.
Declaramos uma variável lastElement
que pegará o último valor de a
e trocar pela primeira posição. Depois disso retornamos o queries
com um map. retornando uma nova listagem.
O resultado será:
3 2 3
1 2 3
0
1
2
//input abaixo
2
3
1
Com isso, concluímos mais um desafio do Resolvendo problemas no HackerRank: . Até a próxima!!!
Top comments (0)