lintcode练习 - 90. k数和 II

版权声明:原创部分都是自己总结的,如果转载请指明出处。觉得有帮助的老铁,请双击666! https://blog.csdn.net/qq_36387683/article/details/82532407

90. k数和 II

Given n unique integers, number k (1<=k<=n) and target.

Find all possible k integers where their sum is target.

样例

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

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
    """
    def kSumII(self, A, k, targer):
        # write your code here
        # 相当于找数组中K个数的组合,然后判断这些组合是否满足要求
        self.res = []
    
        self.helper(A, k, targer, 0, len(A)-k+1, [])
        return self.res
    
    def helper(self, A, k, target, start, end, nums):
        if len(nums) + 1 == k:
            for i in range(start, len(A)):
                if sum(nums + [A[i]]) == target:
                    self.res.append(nums + [A[i]])
            return
    
        for i in range(start, end):
            self.helper(A, k, target, i+1, end+1, nums+[A[i]])

猜你喜欢

转载自blog.csdn.net/qq_36387683/article/details/82532407