NC68 跳台阶

package NC;

/**
* NC68 跳台阶
*
* 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
*
* 数据范围:
* 要求:时间复杂度:O(N) ,空间复杂度:O(1)
*
* @author TANG
* @date 2021/9/28
*/
public class JumpFloor {


/**
* 动态规划
* x :台阶层数x
* f(x) :对于台阶数x,有多少种跳法
* f(x) = f(x-1) + f(x-2)
* base : f(1) = 1 f(2) = 2
*
* @param target
* @return
*/
public int jumpFloor(int target) {

//f(x-1)
int x1 = 0;
//f(x-2)
int x2 = 0;

int result = 0;
for(int i = 1; i <= target; i++){
if(i == 1) {
x2 = 1;
result = 1;
continue;
}
if(i == 2) {
x1 = 2;
result = 2;
continue;
}
result = x1 + x2;
x2 = x1;
x1 = result;
}

return result;


}


public static void main(String[] args) {


}


}
posted @ 2021-09-28 10:32  六小扛把子  阅读(63)  评论(0编辑  收藏  举报