爬楼梯

爬楼梯,n级台阶,一次可以上1级,2级,或3级。 实现一个算法,计算有多少种上楼梯的方式。


最后一步的时候,踏上第n级楼梯的那步,可能走1级,2级或3级。也就是可能从第n-1级爬1步,或第n-2级爬,或2步,或n-3级爬3步。


return countways(n-1) + countways(n-2)+countways(n-3);


运算时间和斐波那契一样exponential = O(3^n).  对同一数值,countways会调用很多次,没必要。我们可以用DP来提高。


动态规划题:


爬楼梯_第1张图片


爬楼梯_第2张图片

你可能感兴趣的:(爬楼梯)