根據上一個題目:青蛙只跳1或2可以得出是一個斐波那契問題,即a[n]=a[n-1]+a[n-2],那麼能跳1,2,3個臺階時a[n]=a[n-1]+a[n-2]+a[n-3]…依次類推,能推出本題的a[n]=a[n-1]+a[n-2]+…+a[1]
所以f(n)=f(n-1)+f(n-2)+…+f(1)
因爲f(n-1)=f(n-2)+f(n-3)+…+f(1)
兩式相減得到:f(n)=2*f(n-1)
public class Solution {
public int JumpFloorII(int number) {
int f=1,fn=1;
for(int i=2;i<=number;i++){
fn=2*f;
f=fn;
}
return fn;
}
}