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)