Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. public List<List<Integer>> helper(List<List<Integer>> res, int[] c, int l, int h, int target, List<Integer> temp){
  2. if(target == 0){
  3. res.add(temp);
  4. System.out.println(temp);
  5. return res;
  6. }
  7. if(target < c[l]){
  8. return res;
  9. }
  10. for(int i = l; i <=h; i++){
  11. temp.add(c[i]);
  12. res = helper(res, c,i,h,target-c[i], temp);
  13. temp.remove(temp.size()-1);
  14. }
  15. return res;
  16. }
  17.  
  18. List<List<Integer>> res = new ArrayList<List<Integer>>();
  19. List<Integer> temp = new ArrayList<Integer>();
  20. res = helper(res,candidates, 0, candidates.length-1, target, temp);
  21.  
  22. [1, 1, 1, 1, 1, 1]
  23. [1, 1, 1, 1, 2]
  24. [1, 1, 1, 3]
  25. [1, 1, 2, 2]
  26. [1, 2, 3]
  27. [2, 2, 2]
  28. [3, 3]
  29.  
  30. res is [[],[],[],[],[],[],[]]
  31.  
  32. if(target == 0){
  33. ArrayList<Integer> copy = new ArrayList<>(temp);
  34. res.add(copy);
  35. return res;
  36. }
  37.  
  38. public static List<List<Integer>> helper(List<List<Integer>> res, int[] c, int l, int h, int target, List<Integer> temp){
  39. if(target == 0){
  40. res.add(temp);
  41. System.out.println(temp);
  42. return res;
  43. }
  44. if(target < c[l]){
  45. return res;
  46. }
  47. for(int i = l; i <=h; i++){
  48. temp.add(c[i]);
  49. res = helper(res, c,i,h,target-c[i], new ArrayList<Integer>(temp));
  50. temp.remove(temp.size()-1);
  51. }
  52. return res;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement