題目
一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。
思路
- 思路1
- 從臺階考慮:最後一個臺階肯定會被跳到,其他的每個臺階都有 跳到 未跳到 兩種狀態
- 思路2
- 從青蛙考慮
- 一次可以跳1,2···n次
- 及
f(n) = f(n-1)+f(n-2)+···+f(0)
- 同理
f(n+1) = f(n)+···+f(0)
- 兩式相減得
f(n+1) = 2*f(n)
代碼
java
public int JumpFloorII(int target) {
return (int)Math.pow(2,target-1);
}