C语言求解青蛙跳台阶问题
- 解题思路:很基本的动态规划问题。假设青蛙求跳n级台阶,那么青蛙的上一级台阶只能是(n-1)级台阶,或者是(n-2)级台阶,所有dp[n]=dp[n-1]+dp[n-2] 使用两个变量保存一下两个前驱dp即可。
*
* @param number int整型
* @return int整型
*
* C语言声明定义全局变量请加上static,防止重复定义
*/
int jumpFloor(int number ) {
// write code here
if(number==1)
return 1;
if(number==2)
return 2;
int temp1=1,temp2=2,temp=0;
//这一步使得 temp1=2 temp2=1+2=3
for(int i=2;i<number;i++){
temp=temp2;
temp2=temp1+temp2;
temp1=temp;
}
return temp2;
}