给定一个整数列表和一个目标整数N,我想找出可以将列表中的整数相加得到N的方法的数目。允许重复。 代码如下:
def countWays(arr, m, N):
count = [0 for i in range(N + 1)]
# base case
count[0] = 1
# Count ways for all values up
# to 'N' and store the result
# m=len(arr)
for i in range(1, N + 1):
for j in range(m):
# if i >= arr[j] then
# accumulate count for value 'i' as
# ways to form value 'i-arr[j]'
if (i >= arr[j]):
count[i] += count[i - arr[j]]
# required number of ways
return count[N]
(来自Geeksforgeks)
你知道如何使用递归和记忆吗?你知道吗
您试图解决的问题与在给定面额列表的情况下更改金额的方法相同。在您的例子中,数量类似于目标数字N,面额类似于整数列表。下面是递归代码。链接是https://www.geeksforgeeks.org/coin-change-dp-7/
相关问题 更多 >
编程相关推荐