Advertisement
sweet1cris

Untitled

Jan 9th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.93 KB | None | 0 0
  1. public class Solution {
  2.     /**
  3.      * @param A: an integer array.
  4.      * @param k: a positive integer (k <= length(A))
  5.      * @param target: a integer
  6.      * @return an integer
  7.      */    
  8.     List<List<Integer> > ans;
  9.     public void dfs(int A[], int K, int target, int index, List<Integer> tans)
  10.     {
  11.  
  12.         if(K == 0 && target == 0) {
  13.             ans.add(new ArrayList<Integer>(tans));
  14.             return ;
  15.         }
  16.         if(K < 0 || target < 0 || index < 0)
  17.             return ;
  18.         dfs(A, K, target, index - 1, tans);
  19.         tans.add(A[index]);
  20.         dfs(A, K  - 1, target - A[index], index - 1, tans);
  21.         tans.remove(tans.size() - 1);
  22.        
  23.     }
  24.    
  25.     public List<List<Integer>> kSumII(int A[], int K, int target) {
  26.         ans = new ArrayList<List<Integer>>();
  27.         List<Integer> tans = new ArrayList<Integer>();
  28.         dfs(A, K, target, A.length - 1, tans);
  29.         return ans;
  30.     }
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement