• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

向小园

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

剑指offer 斐波那契系列

目录
  • T9-斐波那契用迭代
  • 跳台阶
    • 动规 py2
  • 变态跳台阶
    • wo的初始迭代方法
    • 数学--移位 py2
  • 矩形覆盖

T9-斐波那契用迭代

跳台阶

动规 py2

# -*- coding:utf-8 -*-
class Solution:
    def jumpFloor(self, number):
        # write code here
        if number<0:
            return -1
        if number <=2:
            return number
        a,b=1,2
        res = 0
        for i in range(3,number+1):
            res = a+b
            a,b = b,res
        return res

变态跳台阶

wo的初始迭代方法

# -*- coding:utf-8 -*-
class Solution:
    def jumpFloorII(self, number):
        # write code here
        if number<0:
            return -1
        res = [0,1]
        for i in range(2,number+1):
            res.append(sum(res)+1)
        return res[number]

数学--移位 py2

调到第n级台阶,前面的(n-1)级有跳与不跳两种选择吗,故答案为2^(n-1),并且用移位运算代替乘法运算来优化。

# -*- coding:utf-8 -*-
class Solution:
    def jumpFloorII(self, number):
        # write code here
        if number<=0:
            return -1
        res = 1
        return res<<(number-1)

矩形覆盖

## 动规 Py2 ``` # -*- coding:utf-8 -*- class Solution: def rectCover(self, number): # write code here if number<0: return -1 if number<=2: return number a,b=1,2 res=0 for i in range(3,number+1): res = a+b a ,b = b,res return res ```

posted on 2020-03-02 14:12  向小园  阅读(109)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3