• 剑指offer分块总结----------递归和循环


    1、斐波那契数列

    题目描述

    大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。

    n<=39

    class Solution:
        def Fibonacci(self, n):
            # write code here
            if n==0:
                return 0
            if n==1:
                return 1
            if n==2:
                return 1
            if n>=3:
                a=1
                b=1
                c=0
                for i in range(3,n+1):
                    c=a+b
                    a=b
                    b=c
            return c

    2、跳台阶

    题目描述

    一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
    class Solution:
        def jumpFloor(self, number):
            # write code here
            if number<=0:
                return 0
            if number==1:
                return 1
            if number==2:
                return 2
            if number>=3:
                a=1
                b=2
                c=0
                for i in range(3,number+1):
                    c=a+b
                    a=b
                    b=c
                return c

    3、变态跳台阶

    题目描述

    一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
    class Solution:
        def jumpFloorII(self, number):
            # write code here
            if number<=0:
                return 0
            else:
                return pow(2,number-1)

    4、矩形覆盖

    题目描述

    我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
     
    比如n=3时,2*3的矩形块有3种覆盖方法:
    class Solution:
        def rectCover(self, number):
            # write code here
            if number<=0:
                return 0
            if number==1:
                return 1
            if number==2:
                return 2
            if number>=3:
                a=1
                b=2
                c=0
                for i in range(3,number+1):
                    c=a+b
                    a=b
                    b=c
                return c
  • 相关阅读:
    linux 软件 手动添加至桌面或启动栏
    memcached 技术支持
    linux mint & ubuntu 安装QQ国际版
    2014总结
    http response 过长 导致Connection reset
    Python高质量缩放切图,抗锯齿
    eclipse使用Maven插件创建一个web project
    springMVC or response redirect https
    使用SharedPreference保存一些简单的信息
    手机的sd卡的写入和读取数据的方
  • 原文地址:https://www.cnblogs.com/pythonbigdata/p/12765979.html
Copyright © 2020-2023  润新知