DEV Community

Gabriel J
Gabriel J

Posted on

Zerando HackerRank ( 22 )

E no vigésimo segundo episódio desta serie que queima os miolos, vamos abordar um problema envolvendo um problema descrita como rotação circular reta em uma matriz de números inteiros.

Neste desafio temos John Watson, um personagem que 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, devemos executar um número de rotações circulares à direita e retornar o valor do elemento em um determinado índice.

Para resolver este problema, vamos completar a função "circularArrayRotation", ela deve retornar uma matriz de inteiros representando os valores nos índices especificados.

Esta função vai receber os seguintes parâmetros:

a: uma array de números inteiros.

k: um número inteiro necessario para a contagem de rotação.

queries: uma lista de índices para relatar.

Nossa função fara 2 ações para resolver o problema:

Primeiro ela realiza uma rotação circular da matriz "a" para a direita "k" vezes, ou seja, o último elemento da matriz passa a ser o primeiro elemento e os demais elementos são deslocados para a direita. A função utiliza um loop "for" que executa "k" vezes e a cada iteração, remove o último elemento da matriz "a" utilizando o método "pop" e adiciona esse elemento no início da matriz "a" utilizando o método "unshift".

Segundo a função retorna uma nova matriz (array) que contém os elementos de "a" nos índices especificados na matriz "queries" após a rotação da matriz "a". Para isso, utiliza o método "map" que percorre a matriz "queries" e retorna um novo array contendo os elementos da matriz "a" nos índices especificados em "queries" após a rotação.

Resumindo, essa função recebe uma matriz, realiza uma rotação circular para a direita "k" vezes e retorna um novo array contendo os elementos da matriz original nos índices especificados em "queries" após a rotação.

Nossa função vai ficar assim:

Image description

E assim fechamos mais um desafio.

Top comments (0)