您的位置:首页 > 其它

每天一道LeetCode-----找到有多少个组合加起来和是n,每个组合的数字只能是1或者2

2017-11-28 16:08 375 查看

Climbing Stairs

原题链接Climbing Stairs



找到有多少个组合的和是给定的n,要求组合中的每个数字只能是1和2

动态规划即可

代码如下

class Solution {
public:
int climbStairs(int n) {
vector<int> dp(n + 1);
dp[0] = dp[1] = 1;
/* 当前的位置只能由前一个位置移动一步,或者前前位置移动两步到达 */
/* dp[i]表示从开始达到i位置有多少种可能 */
for(int i = 2; i <= n; ++i)
dp[i] = dp[i - 1] + dp[i - 2];
return dp
;
}
};


像这种每个当前状态由以前的状态决定(或者说当前状态决定之后的状态)的问题都可以用动态规划解决,不过需要分析动态规划数组应该表示什么。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode
相关文章推荐