美文网首页
剑指offer面试题09-3----跳台阶(变态版)

剑指offer面试题09-3----跳台阶(变态版)

作者: minningl | 来源:发表于2017-07-29 09:52 被阅读30次

    题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

    思路:青蛙跳n级台阶的跳法相当于青蛙跳青蛙跳n-1级台阶后再跳1级,或者青蛙跳n-2级台阶后再跳2级....或者青蛙跳2级后再跳n-2级,或者跳1级后再跳n-1级,或者直接跳n级。因此 f(x) = f(x-1) + f(x-2) + f(x-3) + .... + f(2) + f(1) + 1, n>=2,当n<2时的情况易得。

    Python代码如下:

    class Solution:
        def jumpFloorII(self, number):
            # write code here
            dp = [0, 1, 2]
            
            for floor in range(3, number+1):
                dp.append(0)
                for i in range(floor):
                    dp[floor] += dp[i]
                dp[floor] += 1
                
            return dp[number]

    相关文章

      网友评论

          本文标题:剑指offer面试题09-3----跳台阶(变态版)

          本文链接:https://www.haomeiwen.com/subject/wxmqlxtx.html