原文:
1、跳台階
解答:這種問題一般是有規律的,跳1級台階,只有1種方法;跳2級台階,有2種方法;跳2級台階,有3種方法;跳4級台階,有5種方法,依次下去,跳乙個n級的台階的方法數是跳n-1級台階的方法數與跳n-2階台階的方法數的總和。這種思路可以用逆推去想,要跳上乙個n級台階,可以從n-1級台階跳1級,也可以從n-2級台階跳2級,這就相當於跳上n-1級台階的方法加上跳上n-2級台階的方法。
注意:這個問題的規律和斐波拉契數列是一樣的。
程式實現:
(1)遞迴方法:時間複雜度隨輸入規模呈指數級增長。
(2)迭代方法:時間複雜度為 o(n)
2、**跳台階
解答:也可以用逆推的思路去想,跳n級台階,可以從n-1級跳上來,也可以從n-2級跳上來,從n-3級跳上來,依次下去,從第1級跳上去,或直接跳上去,所以,跳n級台階的方法數相當於其它所有台階數的方法的總和再加上從0級跳上去,表示式為 f(n) = f(n-1) + f(n-2) +...+ f(2) + f(1) + 1。例如:
當跳1級台階時,f(1) = 1;
當跳2級台階時,f(2) = f(1) + 1 = 2;
當跳3級台階時,f(3) = f(2) + f(1) + 1 = 4;
當跳4級台階時,f(4) = f(3) + f(2) + f(1) + 1 = 8;
f(n) = f(n-1) + f(n-2) +...+ f(2) + f(1) + 1
f(n-1) = f(n-2) +...+ f(2) + f(1) + 1
===》 f(n) - f(n-1) = f(n-1) ===》f(n) = 2 * f(n-1)
程式實現:
(1)遞迴法:
(2)迭代法:
青蛙跳台階
乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。解題思路 1 如果兩種跳法,1階或者2階,那麼假定第一次跳的是一階,那麼剩下的是n 1個台階,跳法是f n 1 2 假定第一次跳的是2階,那麼剩下的是n 2個台階,跳法是f n 2 3 總跳法為 f n f n...
青蛙跳台階
之前面試遇到了這種題目,不會,後來搜尋了一下,感覺分析的很好 青蛙跳乙個n階的台階,每次可以跳1階或者2階,求跳完n階y有多少種方法。分析 n 1,f n 1 n 2,f n 2 n 3,f n 3 n 4,f n 5 可以發現 f n f n 1 f n 2 由此也可以推想 比如要跳到第4階樓梯上...
青蛙跳台階
難易程度 中等 題目描述 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。在不考慮青蛙健康狀況的情況下 求該青蛙跳上乙個n級的台階總共有多少種跳法。思路 在本題的描述中,青蛙的行動只有兩種可能 一次跳乙個台階或者兩個台階,設n階台階的跳法為 f n 如果第一次跳了一階,那麼剩下的n 1階的跳法為f n...