Your title here...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]]
result=[]
def find(start,arr,k,targer,now,a):
if k==1:
for i in range(start,len(a)):
if a[i]+now==targer:
arr.append(a[i])
global result
result.append(arr[:])
arr.pop()
break
if a[i]+now>targer:
break
else:
for i in range(start,len(a)):
if now+a[i]+a[i]<targer:
arr.append(a[i])
find(i+1,arr,k-1,targer,now+a[i],a)
arr.pop()
else:
break
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
a=[]
for i in A:
if i <= targer:
a.append(i)
a.sort()
find(0,[],k,targer,0,a)
global result
return result