k Sum II
Description
Given n unique postive integers, number k (1<=k<=n1<=k<=n) and target.
Find all possible k integers where their sum is target.
public class Solution {
/**
* @param A: an integer array
* @param k: a postive integer <= length(A)
* @param targer: an integer
* @return: A list of lists of integer
*/
public List<List<Integer>> kSumII(int[] A, int k, int targer) {
// write your code here
List<List<Integer>> results = new ArrayList<>() ;
if(A == null){
return null ;
}
if(A.length < k){
return results ;
}
helper(A , 0 , new ArrayList<Integer>() , results , k ,targer ) ;
return results ;
}
public void helper(int[] A , int start , List<Integer> subset , List<List<Integer>> results , int k , int remintarget){
if(subset.size() == k && remintarget == 0){
results.add(new ArrayList<Integer>(subset)) ;
}
for(int i = start ; i < A.length ; i++){
if(remintarget < A[i]){
break ;
}
subset.add(A[i]);
helper(A , i+1 , subset , results , k , remintarget - A[i]) ;
subset.remove(subset.size()-1) ;
}
}
}
这篇博客介绍了一种算法,如何在给定一组正整数和目标值的情况下,找到所有可能的k个数之和等于目标的组合。Solution类中定义了kSumII方法,通过递归实现,适用于编程竞赛或数据结构问题解决。
5万+

被折叠的 条评论
为什么被折叠?



