Contamos con tu apoyo para extender nuestras secciones referente a las ciencias informáticas.
Solución:
Girar a la izquierda por n es lo mismo que girar a la derecha por longitud-n.
Girar a la derecha (para n positivo):
for(int i = 0; i < data.length; i++)
result[(i+n) % data.length ] = data[i];
Girar a la izquierda (para n positivo):
for(int i = 0; i < data.length; i++)
result[(i+(data.length-n)) % data.length ] = data[i];
De esta manera puedes evitar un módulo de un número negativo.
Si desea ingresar un número entero n que gire a la derecha si n es positivo y a la izquierda si n es negativo, puede hacerlo así:
int[] rotateArray(int n, int[] data)
if(n < 0) // rotating left?
n = -n % data.length; // convert to +ve number specifying how
// many positions left to rotate & mod
n = data.length - n; // rotate left by n = rotate right by length - n
int[] result = new int[data.length];
for(int i = 0; i < data.length; i++)
result[(i+n) % data.length ] = data[i];
return result;
En caso de girar a la izquierda, puede usar esto para evitar un módulo de un número negativo:
int[] data = 1, 2, 3, 4, 5;
int[] result = new int[data.length];
for (int i = 0; i < data.length; i++)
result[(i + (data.length - 2)) % data.length] = data[i];
for (int i : result)
System.out.println(i);
Reseñas y valoraciones
Si crees que ha sido útil nuestro post, sería de mucha ayuda si lo compartieras con más juniors de esta forma contrubuyes a extender nuestra información.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)