网站建设的优点和不足,做网站应注意什么,网站开发公司会在最后面加上公司,代理网页 免费1、问题概述#xff1a;每次可以爬 1 或 2 个台阶。有多少种不同的方法可以爬到楼顶
2、示例 示例 1#xff1a; 输入#xff1a;n 2
输出#xff1a;2
解释#xff1a;有两种方法可以爬到楼顶。
1. 1 阶 1 阶
2. 2 阶 示例 2#xff1a; 输入#xff1a;n 3
输出每次可以爬 1 或 2 个台阶。有多少种不同的方法可以爬到楼顶
2、示例 示例 1 输入n 2
输出2
解释有两种方法可以爬到楼顶。
1. 1 阶 1 阶
2. 2 阶 示例 2 输入n 3
输出3
解释有三种方法可以爬到楼顶。
1. 1 阶 1 阶 1 阶
2. 1 阶 2 阶
3. 2 阶 1 阶3、分析
1考斐波那契数列第1个第2个第3个依次类推1 2 3 5……
公式 F(0)0 F(1)1 F(n)F(n-1)F(n-2)
2如果直接使用斐波那契数列进行递归的话时间复杂度回很高会超出时间限制所以对斐波那契数列进行优化在外面设置3个变量利用递推公式f(n) f(n-1) f(n-2) 4、代码
int climbStairs(int n) {// 斐波那契数列 F(0)0 F(1)1 F(n)F(n-1)F(n-2)// 1 2 3if(n2){return n;}long one1;long two2;long three0;for(long i3;in;i){threeone two ;onetwo;twothree;}return three;
}