diff --git a/src/main/java/examenes/examen20241025/Ejercicio_e.java b/src/main/java/examenes/examen20241025/Ejercicio_e.java new file mode 100644 index 0000000..80986e2 --- /dev/null +++ b/src/main/java/examenes/examen20241025/Ejercicio_e.java @@ -0,0 +1,68 @@ +package examenes.examen20241025; + +import static examenes.examen20241025.utils.Utils.*; + +public class Ejercicio_e { + public static void main(String[] args) { + + //Creo un array aleatorio + int[] arrayAleatorio = crearArrayNumsAleatorios(20, 0, 100); + + //Muestro el array normal + System.out.println("Este es el array generado:"); + mostrarArrayNums(arrayAleatorio); + + //Muestro solo los picos + System.out.println("\nEstos son los picos del array:"); + mostrarArrayNums(buscarPicos(arrayAleatorio)); + } + + public static int[] buscarPicos(int[] array) { + //Creo un contador para después saber de qué tamaño hacer el array a devolver + int picosEncontrados = 0; + + //Duplico el array para que las comparaciones se hagan sin problemas + int[] arrayDuplicado = new int[array.length]; + for (int i = 0; i < array.length; i++) { + arrayDuplicado[i] = array[i]; + } + + //Recorro todo el array + for (int i = 0; i < array.length; i++) { + //Para apuntarlos los pongo negativos en un array aparte + + //Si estamos al principio solo comparo con el de al lado + if (i == 0) { + if (array[i] > array[i + 1]) { + arrayDuplicado[i] *= -1; + picosEncontrados++; + } + //Si estamos al principio solo comparo con el del final + } else if (i == (array.length - 1)) { + if (array[i] > array[i - 1]) { + arrayDuplicado[i] *= -1; + picosEncontrados++; + } + //En otro caso comparo en los dos lados + } else { + if (array[i] > array[i - 1] && array[i] > array[i + 1]) { + arrayDuplicado[i] *= -1; + picosEncontrados++; + } + } + } + + //Creo el array con el tamaño necesario + int[] arrayPicos = new int[picosEncontrados]; + int contadorIndice = 0; + + //Voy buscando los negativos y los añado al array nuevo como positivos + for (int i = 0; i < arrayDuplicado.length; i++) { + if (arrayDuplicado[i] < 0) { + arrayPicos[contadorIndice] = (arrayDuplicado[i] * -1); + contadorIndice++; + } + } + return arrayPicos; + } +}