0% found this document useful (0 votes)
7 views

combination sum (recursion)

The document contains a Java class 'Solution' that implements a method to find all unique combinations of numbers from a given array that sum up to a specified target. It uses a recursive approach to explore possible combinations and stores valid results in a list. The main method 'combinationSum' initializes the process and returns the list of combinations.

Uploaded by

wedok26771
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

combination sum (recursion)

The document contains a Java class 'Solution' that implements a method to find all unique combinations of numbers from a given array that sum up to a specified target. It uses a recursive approach to explore possible combinations and stores valid results in a list. The main method 'combinationSum' initializes the process and returns the list of combinations.

Uploaded by

wedok26771
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 1

class Solution {

// functions to fine the combinations


private void findCombinations(int ind, int arr[], int target,
List<List<Integer>> ans, List<Integer> ds)
{
// check weather arr length and index equal or not
if(ind==arr.length){
if(target==0)
{
ans.add(new ArrayList<>(ds));
}
return;
}
// check the current index element of array is less equal to target or not
if(arr[ind]<= target){
// add element into the arraylist
ds.add(arr[ind]);
// do recursive call for the same index element
findCombinations(ind, arr, target-arr[ind],ans, ds);
// remove last inserted element from the array list
ds.remove(ds.size()-1);

}
// do recursive call for the next index element
findCombinations(ind+1, arr, target,ans, ds);
}

public List<List<Integer>> combinationSum(int[] candidates, int target) {


// ans list to storing the answer
List<List<Integer>> ans= new ArrayList<>();
// call the findcombination function
findCombinations(0,candidates,target,ans, new ArrayList<>());
// return the final list
return ans;
}
}

You might also like