假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 直到 m 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。
> 动态规划
class Solution {
public:
int combinationSum4(int m, int n) {
vector<int> dp(n+1,0);
dp[0] = 1;
//排列问题,先遍历背包
for(int i = 1;i <= n;i++){ //背包
for(int j = 1; j <= m;j++){ // 物品
if(i - j >= 0) dp[i] += dp[i-j];
}
}
}
};
标签:楼顶,爬楼梯,进阶,int,70,dp
From: https://www.cnblogs.com/lihaoxiang/p/17442968.html