概述
给定n个不同的正整数,整数k(1<= k <= n)以及一个目标数字。
在这n个数里面找出K个数,使得这K个数的和等于目标数字,你需要找出所有满足要求的方案。
您在真实的面试中是否遇到过这个题?
Yes
样例
标签
Expand
给出[1,2,3,4],k=2, target=5,返回 [[1,4],[2,3]]
相关题目 Expand
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
if (null == A || 0 == A.length)
return null;
ArrayList<ArrayList<Integer>> res = new ArrayList<>();
ArrayList<Integer> tmp = new ArrayList<>();
kSumf(A, 0,k, target, 0, tmp, res);
return res;
}
public void kSumf(int A[], int index,int k, int target, int sum,
ArrayList<Integer> tmp, ArrayList<ArrayList<Integer>> res) {
if(tmp.size()==k&&sum==target){
res.add((ArrayList<Integer>) tmp.clone());
return;
}
if(index>=A.length){
return;
}
if(sum>target){
return;
}
tmp.add(A[index]);
kSumf(A, index+1, k, target, sum+A[index], tmp, res);
tmp.remove(tmp.size()-1);
kSumf(A, index+1, k, target, sum, tmp, res);
}
}
最后
以上就是魔幻微笑为你收集整理的题目:k数和 II的全部内容,希望文章能够帮你解决题目:k数和 II所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复