Skip to content

Commit

Permalink
Merge pull request #5115 from gonzsanz/main
Browse files Browse the repository at this point in the history
Reto #38 - Java
  • Loading branch information
Roswell468 authored Sep 27, 2023
2 parents d5d151a + d7c4e7b commit 2455ae6
Showing 1 changed file with 58 additions and 0 deletions.
58 changes: 58 additions & 0 deletions Retos/Reto #38 - LAS SUMAS [Media]/java/gonzsanz.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
* Reto #38
*
* @author gonzsanz
* @description
* Crea una función que encuentre todas las combinaciones de los
* números
* de una lista que suman el valor objetivo.
* - La función recibirá una lista de números enteros positivos
* y un valor objetivo.
* - Para obtener las combinaciones sólo se puede usar
* una vez cada elemento de la lista (pero pueden existir
* elementos repetidos en ella).
* - Ejemplo: Lista = [1, 5, 3, 2], Objetivo = 6
* Soluciones: [1, 5] y [1, 3, 2] (ambas combinaciones suman 6)
* (Si no existen combinaciones, retornar una lista vacía)
*
*/
public class gonzsanz {
public static void main(String[] args) {

int numeros[] = { 1, 5, 3, 2 };
int objetivo = 6;

List<Integer[]> combinaciones = getSum(numeros, objetivo);

for (Integer[] combinacion : combinaciones) {
System.out.println(Arrays.toString(combinacion));
}

}

private static List<Integer[]> getSum(int nums[], int objetivo) {
List<Integer[]> combinaciones = new ArrayList();

for (int i = 0; i < nums.length; i++) {
for (int j = i + 1; j < nums.length - 1; j++) {
if (nums[i] + nums[j] == objetivo) {
Integer[] combinacion = { nums[i], nums[j] };
combinaciones.add(combinacion);
}

if (nums[i] + nums[j] < objetivo) {
int flag = nums[i] + nums[j];
if (flag + nums[j + 1] == objetivo) {
Integer[] combinacion = { nums[i], nums[j], nums[j + 1] };
combinaciones.add(combinacion);
}
}
}
}
return combinaciones;
}
}

0 comments on commit 2455ae6

Please sign in to comment.