本文主要是介绍leetcode#70爬楼梯-数学大法好,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题是n阶楼梯要爬,每次可以走1步或者2步,问爬到n阶,一共有多少种方法。
其实就是整数n拆分成若干个1和2的求和,假设n阶有Sn种方法,那么Sn可能是怎么来的呢,就是Sn-1再+1,或者Sn-2再+2,所以划分为子问题,Sn=Sn-1 + Sn-2.
class Solution {
public:
int climbStairs(int n) {
vector<int> base(n+1,0);
base[0]=1;
base[1]=1;
for(int i=2;i<=n;i++){
base[i]=base[i-1]+base[i-2];
}
return base[n];
}
};
这篇关于leetcode#70爬楼梯-数学大法好的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!