zoukankan      html  css  js  c++  java
  • 剑指offer-JZ9 跳台阶扩展问题

    难度:简单

    考点:递归、动态规划

    题目描述:

    一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶(n为正整数)总共有多少种跳法。

    解题思路:

    通过分析可以发现,也是一个可以递归的问题,同样,定义变量来存储中间变量方便后续取用。

    # -*- coding:utf-8 -*-
    class Solution:
        def jumpFloorII(self, number):
            # write code here
            # f(n) = f(n-1) + f(n-2) + ...+ f(1)
            # f(n-1) =f(n-2) + f(n-3) + ...+ f(1)
            # f(n) = 2f(n-1) n >1
            #f(1) = 1 ,n=1
            if number == 1:
                return 1
            ret = 1
            a = 1
            for i in range(2,number+1):
                ret = 2 * a
                a = ret 
            return ret
        
        # 也可以直接找规律  2^(n-1)
    #         return pow(2, number-1)

    也可以直接分析,不写成循环形式,会发现,结果为2^(n-1),直接用pow求。

  • 相关阅读:
    监听键盘弹出 隐藏
    状态栏 设置白色字体
    UITextField 属性详解
    支付宝集成SDK 报错
    UIWebView
    app上传 需要的icon
    百度云推送 pem
    百度地图
    info.plist 属性讲解
    静态库 动态库
  • 原文地址:https://www.cnblogs.com/LLLLgR/p/15013125.html
Copyright © 2011-2022 走看看