377.组合总和IV

思路:

给出nums和target,让求target的和,因此可以借用动态规划遍历开始
1.确定dp数组及其下标含义:dp【x】为和是x的数
2.确定递推公式:当num<=i时可将i-num的值赋值给dp【i】
3.确定初始化:定义一个长为target+1的数组,初始化为零
4.确定遍历范围:正常从1--target开始遍历即可,在nums里遍历合适的数num最后返回target值的数
class solution:
    def combinationSum4(self, nums: list[int], target: int) -> int:
        # 初始化长度为target+1的列表,所有元素都为0,第一个元素为1
        dp=[1]+[0]*target
        # 遍历1到target的数字
        for i in range(1,target+1):
            # 遍历nums列表中的元素
            for num in range(nums):
                # 如果当前数字小于等于当前目标值
                if num<=i:
                    # 更新dp数组中索引为i的值,将dp[i]加上dp[i-num]
                    dp[i]=dp[i]+dp[i-num]
        # 返回dp数组中索引为target的值
        return dp[target]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值