Rotar Derecha, Paridad array y Duplicados

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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;
    }

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos