def kSum(self, A, k, target):
n = len(A)
if n <= 0 or k <= 0 or target <= 0:
return 0
# f[n][k][target]:表示當前和,把k和target都放入狀態(tài)
# 表示前i個數(shù)字中找出j個數(shù),使得這 j 個數(shù)的和等于 h 的方案數(shù)
# f(i, j, h) = f(i-1, j, h) + f(i-1, j-1, h-A[ i ])。
# (即取與不取第j個數(shù)的方案數(shù)之和,類似于01背包)
for i in range(n):
for j in range(k):
for h in range(target):