不同路径
class Solution {
public:
int uniquePaths(int m, int n) {
vector dp(n);
for(int i=0;i<n;i++) dp[i]=1;
for(int j=1;j<m;j++){
for(int i=1;i<n;i++){
dp[i]+=dp[i-1];
}
}
return dp[n-1];
}
};
爬楼梯
class Solution {
public:
int climbStairs(int n) {
vector dp(n+3);
dp[1] = 1;
dp[2] = 2;
for(int i = 3; i <= n; i++)
dp[i] = dp[i-1] + dp[i-2];
return dp[n];
}
};
子集
class Solution {
public:
int climbStairs(int n) {
vector dp(n+3);
dp[1] = 1;
dp[2] = 2;
for(int i = 3; i <= n; i++)
dp[i] = dp[i-1] + dp[i-2];
return dp[n];
}
};
今天的多为动态规划类问题,以前没有学习过,所以今天的代码多为借鉴。