xxxxxxxxxx
import java.util.*;
public class Main {
public static boolean subsetSum(int[] numbers, int sum) {
if (sum == 0) {
return true;
}
if (numbers == null || numbers.length == 0 || sum < 0) {
return false;
}
// let's try to use the first element in the array
if (subsetSum(Arrays.copyOfRange(numbers, 1, numbers.length), sum - numbers[0])) {
return true;
}
// let's try not to use the first element of the cell
return subsetSum(Arrays.copyOfRange(numbers, 1, numbers.length), sum);
}
public static void main(String[] args) {
int[] arr = {3,8,15,97,6};
int sum = 18;
System.out.println(subsetSum(arr, sum));
}
}