题解 | #跳台阶#
跳台阶
http://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4
public class Solution {
public int jumpFloor(int target) {
return target<=0?0:(target==1?1:(target==2?2:(jumpFloor(target-1)+jumpFloor(target-2))));
}
}
解题:
- 当台阶小于等于0,则返回0
- 当台阶为1阶,只有1种跳法,1
- 当台阶为2阶,有2种跳法,1 1、2
- 当台阶为3阶,有3种跳法,1 1 1, 1 2, 2 1
- 当台阶为4阶,有5种跳法,1 1 1 1, 1 2 1, 2 1 1, 1 1 2, 2 2 ... 依次类推 当台阶大于等于3:跳法数为(jumpFloor(target-1)+jumpFloor(target-2))