java的sort排序問題
阿新 • • 發佈:2020-12-21
索引請參考:系列目錄
題目:
- 一隻青蛙一次可以跳上1級臺階,也可以跳上2級臺階。求該青蛙跳上一個n級臺階共有多少總跳法?
- 例:輸入 1 輸出 1
- 輸入3 輸出 3
- 輸入5 輸出 8
分析:
- 分析題目規律:
- 1級 輸出 1
- 2級 輸出2
- 3級 輸出3
- 4級 輸出4
- 5級 輸出 8
- 6級 輸出13
- 綜上考慮,該規律符合斐波那契數列的規律
具體演算法:
int jumpFloor(int number) {
int result[2] = {1,2};
if(number < 3)
return result[number -1];
int Fn,Fn_1 = 2,Fn_2 = 1;
for(int i = 3;i <= number; ++i)
{
Fn = Fn_1 + Fn_2;
Fn_2 = Fn_1;
Fn_1 = Fn;
}
return Fn;
}
牛客執行結果:
評註:這道題雖然看似簡單,但是也在一定程度上映射出來現在公司真題的考試趨勢,他們不單單隻把一些演算法題幹告知應試者,而實通過一層外衣來粉飾這個演算法。該演算法巧妙的將青蛙跳臺階問題轉化成了斐波那契數列,而且將斐波那契數列的演算法做了進一步的優化(具體優化思路請參考上一篇