程序查找在python中总计为k的不同组合的数量

假设我们有一个称为nums和另一个数字k的不同数字的列表,我们必须找到总计为k的不同组合的数量。您可以在创建组合时重复使用数字。

因此,如果输入像nums = [2,4,5] k = 4,那么输出将是2,因为我们可以将两个这样的组划分为[2,2]和[4]。

为了解决这个问题,我们将按照以下步骤操作:

  • table:=大小为k + 1的列表,并用0填充

  • table[0]:= 1

  • 对于以num为单位的每个num

    • table [i]:= table [i] + table [i-num]

    • 对于num到k的i

  • 返回表[k]

让我们看下面的实现以更好地理解:

范例程式码

class Solution:

   def solve(self, nums, k):

      table = [1] + [0] * k

      for num in nums:

         for i in range(num, k + 1):

            table[i] += table[i - num]

         return table[k]

ob = Solution()

nums = [2, 4, 5]

k = 4

print(ob.solve(nums, k))

输入值

[2, 4, 5], 4

输出结果

2

以上是 程序查找在python中总计为k的不同组合的数量 的全部内容, 来源链接: utcz.com/z/344816.html

回到顶部