Deslocamentos à esquerda e à direita

Crie duas funções: uma de deslocamento à esquerda e outra de deslocamento à direita. Cada função receberá um vetor e um número que indica quantas posições deslocá-lo.

new int[]{1, 2, 3, 4, 5}

new int[]{2, 3, 4, 5, 1}  // deslocamento à esquerda de 1
new int[]{5, 1, 2, 3, 4}  // deslocamento à esquerda de 4

new int[]{5, 1, 2, 3, 4}  // deslocamento à direita de 1
new int[]{3, 4, 5, 1, 2}  // deslocamento à direita de 3

Exemplos

Program.leftShift(new int[]{1, 2, 3, 4}, 1) ➞ new int[]{2, 3, 4, 1}

Program.rightShift(new int[]{1, 2, 3, 4}, 1) ➞ new int[]{4, 1, 2, 3}

Program.leftShift(new int[]{1, 2, 3, 4, 5}, 3) ➞ new int[]{4, 5, 1, 2, 3}

Program.leftShift(new int[]{1, 2, 3, 4, 5}, 5) ➞ new int[]{1, 2, 3, 4, 5}
// Ao deslocar o vetor uma volta completa, você retorna à ordem inicial.

Program.leftShift(new int[]{1, 2, 3, 4, 5}, 6) ➞ new int[]{2, 3, 4, 5, 1}
// As funções devem aceitar quantidades de deslocamentos maiores que o comprimento do vetor.
// Considere o comprimento do vetor como o módulo.

Observações

  • num pode ser maior que a quantidade de elementos do vetor.
  • num nunca será negativo.