zoukankan      html  css  js  c++  java
  • Lintcode: k Sum II

    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

     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 a list of lists of integer 
     7      */ 
     8     public ArrayList<ArrayList<Integer>> kSumII(int A[], int k, int target) {
     9         // write your code here
    10         ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();
    11         ArrayList<Integer> path = new ArrayList<Integer>();
    12         helper(res, path, A, k, target, 0);
    13         return res;
    14     }
    15     
    16     public void helper(ArrayList<ArrayList<Integer>> res, ArrayList<Integer> path, int[] A, int k, int remain, int index) {
    17         if (path.size() == k) {
    18             if (remain == 0) {
    19                 res.add(new ArrayList<Integer>(path));
    20             }
    21             return;
    22         }
    23         for (int i=index; i<A.length; i++) {
    24             path.add(A[i]);
    25             helper(res, path, A, k, remain-A[i], i+1);
    26             path.remove(path.size()-1);
    27         }
    28     }
    29 }
  • 相关阅读:
    Java 面向对象_继承
    Java 面向对象
    使用 pykafka 进行消费
    oracle 的分页、截断查询
    Day03
    Day02 计算机的组成与编程语言
    Day01 MarkDown的使用
    Java方法的重点
    Scanner的小细节
    Java包机制和Javadoc的使用
  • 原文地址:https://www.cnblogs.com/EdwardLiu/p/4314783.html
Copyright © 2011-2022 走看看