Lintcode: k Sum II
2015-03-05 06:51
274 查看
Given n unique integers, number k (1<=k<=n) and target. Find all possible k integers where their sum is target. Example Given [1,2,3,4], k=2, target=5, [1,4] and [2,3] are possible solutions.
这道题同Combination Sum II
public class Solution { /** * @param A: an integer array. * @param k: a positive integer (k <= length(A)) * @param target: a integer * @return a list of lists of integer */ public ArrayList<ArrayList<Integer>> kSumII(int A[], int k, int target) { // write your code here ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>(); ArrayList<Integer> path = new ArrayList<Integer>(); helper(res, path, A, k, target, 0); return res; } public void helper(ArrayList<ArrayList<Integer>> res, ArrayList<Integer> path, int[] A, int k, int remain, int index) { if (path.size() == k) { if (remain == 0) { res.add(new ArrayList<Integer>(path)); } return; } for (int i=index; i<A.length; i++) { path.add(A[i]); helper(res, path, A, k, remain-A[i], i+1); path.remove(path.size()-1); } } }
相关文章推荐
- LintCode "Continuous Subarray Sum II"
- LintCode "Interval Sum II"
- lintcode:k Sum II
- LintCode "Subarray Sum II"
- lintcode-medium-Combination Sum II
- leetocode Path Sum II 2.21 难度系数2
- LintCode: 房屋染色 II
- lintcode-medium-Binary Tree Level Order Traversal II
- LINTCODE——房屋染色II
- LintCode 36 翻转链表 II
- LintCode "Continuous Subarray Sum"
- lintcode之 合并排序数组 II
- LintCode:背包问题 II
- Lintcode——整数排序 II
- LintCode Majority Number II / III
- LintCode--买卖股票的最佳时机 II
- LintCode "Subarray Sum Closest"
- lintcode-36-翻转链表 II
- lintcode-删除排序链表中的重复数字 II
- lintcode --跳跃游戏II