题目链接:
题目简介:
描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
数据范围: 1≤n≤40
要求:时间复杂度: O(n) ,空间复杂度: O(1)
题目解法:
图解:以台阶num=3为例
/**
*
* @param number int整型
* @return int整型
*/
/* 规律总结:斐波那契数列规律
[n级台阶] : |1|2|3|4|5|
[跳法] : |1|2|3|5|8|
*/
//动态规划
int jumpFloor(int number ) {
// write code here
int count = 0;
int temp;
int dp[2] = {1,2};
if(number <= 2) //台阶少于2,则直接返回
return dp[number-1];
for(int i = 3; i <= number; i++){
temp = dp[1];
dp[1] = dp[0] + dp[1];
dp[0] = temp;
}
return dp[1];
}