我是靠谱客的博主 魔幻微笑,最近开发中收集的这篇文章主要介绍题目:k数和 II,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

给定n个不同的正整数,整数k(1<= k <= n)以及一个目标数字。    

在这n个数里面找出K个数,使得这K个数的和等于目标数字,你需要找出所有满足要求的方案。

您在真实的面试中是否遇到过这个题?
Yes
哪家公司问你的这个题? Airbnb Alibaba Amazon Apple Baidu Bloomberg Cisco Dropbox Ebay Facebook Google Hulu Intel Linkedin Microsoft NetEase Nvidia Oracle Pinterest Snapchat Tencent Twitter Uber Xiaomi Yahoo Yelp Zenefits
感谢您的反馈
样例

给出[1,2,3,4],k=2, target=5,返回 [[1,4],[2,3]]

标签 Expand
LintCode 版权所有 深度优先搜索



相关题目 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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部