377. 组合总和 Ⅳ

题目链接 377. 组合总和 Ⅳ
思路 动态规划
题解链接 本质是爬楼梯:从记忆化搜索到递推,附题单(Python/Java/C++/C/Go/JS/Rust)
关键点 1.
时间复杂度 \(O(target \cdot n)\)
空间复杂度 \(O(target)\)

代码实现:

class Solution:
    def combinationSum4(self, nums: List[int], target: int) -> int:
        @cache
        def dfs(i):
            if i == 0:
                return 1
            return sum(
                dfs(i-x)
                for x in nums if x <= i
            )
        return dfs(target)
posted @ 2024-09-13 00:35  WrRan  阅读(5)  评论(0编辑  收藏  举报