Estruturas de dados (3): Girar um array

Gire um array para a esquerda ou para a direita de acordo com o número informado.

Você é um agente infiltrado em uma festa de coquetel organizada por um cartel secreto maligno. Você entrou sorrateiramente no escritório principal para examinar os arquivos. Eles estão organizados de acordo com um sistema de índices. Você decide girar os arquivos para que, quando o gênio do mal for buscar o Arquivo 47: Como Fazer uma Bomba, ele acabe pegando o Arquivo 43: Como Fazer um Dinossauro de Papel Machê. A tentativa dele de fazer uma bomba vai fracassar, e você terá salvado muitas vidas.

Seu desafio é escrever uma função que gire um array por uma determinada quantidade, para a esquerda ou para a direita, dependendo de o número ser positivo ou negativo.

Argumentos

  • Array: O array que será girado.
  • Number: O número de posições de índice pelas quais o array será girado.
  • Retorna Array: O array girado.

Exemplos

Um número positivo gira o array para a direita:

rotateArray([0, 1, 2, 3, 4, 5, 7, 9], 2) ➞ [7, 9, 0, 1, 2, 3, 4, 5]

Um número negativo gira o array para a esquerda:

rotateArray([0, 1, 2, 3, 4, 5, 7, 9], -2) ➞ [2, 3, 4, 5, 7, 9, 0, 1]

O número de posições pelo qual o array será girado pode ser maior que o tamanho do array; nesse caso, ele simplesmente dá a volta:

rotateArray([0, 1, 2, 3, 4, 5, 7, 9], 12) ➞ [4, 5, 7, 9, 0, 1, 2, 3]

Observações

  • Esta é uma parte da minha série de Estruturas de dados: uma coleção de desafios comuns de entrevistas de programação usados para testar a compreensão de estruturas de dados.
  • A série completa de desafios pode ser encontrada aqui.