經典有水平的java面試題!

一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。

public int JumpFloor(int target) {

if(target == 1 || target == 2) {

return target;

}

// 第一階和第二階考慮過了,初始當前臺階爲第三階,向後迭代

// 思路:當前臺階的跳法總數=當前臺階後退一階的臺階的跳法總數+當前臺階後退二階的臺階的跳法總數

int jumpSum = 0;// 當前臺階的跳法總數

int jumpSumBackStep1 = 2;// 當前臺階後退一階的臺階的跳法總數(初始值當前臺階是第3階)

int jumpSumBackStep2 = 1;// 當前臺階後退二階的臺階的跳法總數(初始值當前臺階是第3階)

for(int i = 3; i <= target; i++) {

jumpSum= jumpSumBackStep1 + jumpSumBackStep2;

jumpSumBackStep2 = jumpSumBackStep1;// 後退一階在下一次迭代變爲後退兩階

jumpSumBackStep1 = jumpSum; // 當前臺階在下一次迭代變爲後退一階

}

return jumpSum;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章