public static void main(String[] args) {
int[] numeros= {1,2,3,4,5};
System.out.println(Arrays.toString(rotarDerecha(numeros,2)));
System.out.println(Arrays.toString(numeros));
}
/*
* Crear una función rotarDerecha a la que la pasamos un
* array de enteros y nos devuelve el array con los elementos
* desplazados a la derecha (el último va al principio)
rotarDerecha([1,2,3,4]) -> [4,1,2,3]
*/
public static int[] rotarDerecha(int[] array, int pos) {
int longitud=array.length;
int[] nuevo=new int[longitud];
// En el primero pongo el último
// En los siguientes del nuevo pongo el que está en
// la posición anterior del que me pasan
//nuevo[0]=array[array.length-1];
for(int i=0;i<longitud;i++) {
nuevo[i]=array[(i-pos+longitud) % longitud];
}
return nuevo;
}
public static int paridadArray(int[] numeros) {
// Dos contadores: pares e impares
int pares = 0;
int impares = 0;
for (int numero : numeros) {
if (numero % 2 == 0) {
pares++;
} else {
impares++;
}
}
switch (Integer.compare(pares, impares)) {
case -1:
return 1;
case 1:
return 2;
default:
return 0;
}
}
public static boolean hayDuplicados(int[] numeros) {
int[] ordenado=numeros.clone();
Arrays.sort(ordenado);
// { 1, 2, 3, 4, 6,5,1 }->{1,1,2,3,4,5,6}
for(int i=0;i<ordenado.length-1;i++) {
if (ordenado[i]==ordenado[i+1]) {
return true;
}
}
return false;
}
// Sin ordenar la receta es lo que haría yo
public static boolean hayDuplicadosSin(int[] numeros) {
for(int i=0;i<numeros.length;i++) {
int numero=numeros[i];
for(int j=i+1;j<numeros.length;j++) {
if(numeros[j]==numero) {
return true;
}
}
}
return false;
}