• 【剑指offer】03-变态跳台阶


    题目:

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


     

    思考:

    跟之前的跳台阶差不多,都用到斐波那契数列的思想,只是我咋列举的时候每次都数不清啊喂!

    列举完后可以找到规律:跳n级台阶有2^(n-1)种方法,直接return 2**(n-1)居然也可以过…

    不过还是要锻炼自己的算法思维啊!

    找到通用表达式:f(n) = 2 * f(n-1)  [具体过程见图]

    class Solution:
        def jumpFloorII(self, number):
            # return 2 ** (number - 1)  # 找规律的结果
            ret = 1
            if number <= 1:
                return 1
            elif number == 2:
                return 2
            else:
                for i in range(2, number+1):
                    num = 2 * ret
                    ret = num
                return num
  • 相关阅读:
    最大子列和
    喷水装置
    某种排序
    三个水杯
    奇偶数分离
    ASCII码排序(未完)
    1002
    if语句
    6.7
    A+B问题 涉及EOF
  • 原文地址:https://www.cnblogs.com/RebeccaG/p/11923337.html
Copyright © 2020-2023  润新知