Python3爬楼梯算法示例

本文实例讲述了Python3爬楼梯算法。分享给大家供大家参考,具体如下:

假设你正在爬楼梯。需要 n 步你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

方案一:每一步都是前两步和前一步的和

class Solution(object):

def climbStairs(self, n):

"""

:type n: int

:rtype: int

"""

pre, cur = 1, 1

for i in range(1,n):

pre,cur = cur,pre+cur

return cur

#测试

tmp = Solution()

print(tmp.climbStairs(10))

运行结果:

89

方案二:用列表记录每个n对应的值,最后的n取最后一个值即可

class Solution(object):

def climbStairs(self, n):

"""

:type n: int

:rtype: int

"""

if n == 1:

return 1

if n == 2:

return 2

res = [1, 2]

for i in range(2, n):

res.append(res[i - 1] + res[i - 2])

return res[-1]

#测试

tmp = Solution()

print(tmp.climbStairs(10))

运行结果:

89

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

时间: 2019-03-02

介绍 本篇将介绍Python3中的迭代器与生成器,描述可迭代与迭代器关系,并实现自定义类的迭代器模式. 迭代的概念 上一次输出的结果为下一次输入的初始值,重复的过程称为迭代,每次重复即一次迭代,并且每次迭代的结果是下一次迭代的初始值 注:循环不是迭代 while True: #只满足重复,因而不是迭代 print('====>')  迭代器 1.为什么要有迭代器? 对于没有索引的数据类型,必须提供一种不依赖索引的迭代方式. 2.迭代器定义: 迭代器:可迭代对象执行__iter__方法,得到的结果

python之冒泡排序 概念: 重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小.首字母从A到Z)错误就把他们交换过来.走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成 这个算法的名字由来是因为越大的元素会经由交换慢慢"浮"到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名"冒泡排序". 算法原理 冒泡排序算法的原理如下: 比较相邻的元素.如果第一个比第二个大,就交换他

本文实例讲述了python从任意长度的可迭代对象中分解元素操作.分享给大家供大家参考,具体如下: 从某个可迭代对象中分解出N个元素,但是可迭代对象的长度可能超过N,会出现"分解值过多"的异常: 使用"*表达式"来解决该问题: Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32 Type "copyright",

本文实例讲述了Python数据结构与算法之图的基本实现及迭代器.分享给大家供大家参考,具体如下: 这篇文章参考自一书的第二章,并给出这一章节里我的习题解答. (这书不到120页纸,要卖50块!!,一开始以为很厚的样子,拿回来一看,尼玛.....代码很少,给点提示,然后让读者自己思考怎么实现) 先定义顶点和边 class Vertex(object): def __init__(self, label=''): self.label = label def __repr__(sel

import numpy as np import time 1.1 Gauss-Seidel迭代算法 def GaussSeidel_tensor_V2(A,b,Delta,m,n,M): start=time.perf_counter() find=0 X=np.ones(n) d=np.ones(n) m1=m-1 m2=2-m for i in range(M): print('X',X) x=np.copy(X) #迭代更新 for j in range(n): a=np.copy(A

Python怎么生成一个迭代器,对于需要处理大型数据来说,迭代器是必不可少的,这样可节省大量内存空间,更加合理操作数据. 首先我们打开编辑器,这里以Sublime text3作为示范,创建一个新的py文档. rg = range(100) for i in rg: print(i) 我们知道range可以涵盖比较广的范围,但是如果数据太大的时候,一次性打印会占用比较多内存. rg = range(100) rg_iter = iter(rg) print(rg_iter) 那么这个时候我们就可以

python中有指定的代码进行输入操作,所以今天就由小编来为大家介绍python怎么实现键盘输入. 第一首先打开电脑的python编辑工具. 再创建python项目. 第二然后应用sys函数. 命令为import sys. 第三然后定义一个int类型的x. 再用函数进行接收键盘的输入. 第四然后用sys.stdin.readline方法. 再读取x的数值. 第五然后进行输出x的数值. 再用print函数进行输出. 第六然后右键点击python项目. 再点击运行项目. 这样就实现python的键盘

本人新学python,发现python程序转成软件好麻烦,为了方便大家,同时自己整理下资源,发布以下教程哦. 下载 "pywin32"软件,选择最新的build文件夹,支持新版本的python 下载完毕后进行安装,需要相应版本的python作为支持 安装完成后,打开cmd,输入"pip install pywin32",如果pywin32程序老旧,会提示你输入 "python -m pip install --upgrade pip"命令自动更新

实例如下: # 环境: python3.x def getExportDbSql(db, index): # 获取导出一个数据库实例的sql语句 sql = 'mysqldump -u%s -p%s -h%s -P%d --default-character-set=utf8 --databases mu_ins_s%s > %s.s%d.mu_ins_%d.sql' %(db['user'], db['pwd'], db['host'], db['port'], index, db['serv

我就废话不多说了,直接上代码吧! 第一种 def test1(): l = [] for i in range(1000): l = l + [i] 第二种(append ) def test2(): l = [] for i in range(1000): l.append(i) 第三种(列表推导式) def test3(): l = [i for i in range(1000)] 第四种(list ) def test4(): l = list(range(1000)) 以上这篇Pytho

本文实例讲述了Python生成MD5值的两种方法.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- import datetime # NO.1 使用MD5 import md5 src = 'this is a md5 test.' m1 = md5.new() m1.update(src) print m1.hexdigest() 运行结果: 174b086fc6358db6154bd951a8947837 # -*- coding:utf-8 -*- # NO

python项目如何在另一个环境上重新构建项目所需要的运行环境依赖包? 使用的时候边记载是个很麻烦的事情,总会出现遗漏的包的问题,这个时候手动安装也很麻烦,不能确定代码报错的需要安装的包是什么版本.这些问题,requirements.txt都可以解决! 生成requirements.txt,有两种方式: 第一种 适用于 单虚拟环境的情况: : pip freeze > requirements.txt 为什么只适用于单虚拟环境?因为这种方式,会将环境中的依赖包全都加入,如果使用的全局环境,则下载

本文实例讲述了Python生成8位随机字符串的方法.分享给大家供大家参考,具体如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import random import string #第一种方法 seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+=-" sa = [] for i in range(8): sa.a

问题,用python生成如下所示的1000个txt文件? 解答: import os for i in range(0,1001): os.mknod("./a/%04d.txt"%i) 以上这篇用python生成1000个txt文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

本文实例讲述了Python生成不重复随机值的方法.分享给大家供大家参考.具体分析如下: 这里从一列表中,生成不重复的随机值 算法实现如下: import random total = 100 li = [i for i in range(total)] res = [] num = 20 for i in range(num): t = random.randint(i,total-1) res.append(li[t]) li[t], li[i] = li[i], li[t] print re

python爬楼梯_Python3爬楼梯算法示例相关推荐

  1. php实现凯撒密码加密算法,Python实现的凯撒密码算法示例

    本文实例讲述了Python实现的凯撒密码算法.分享给大家供大家参考,具体如下: 一 介绍 凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方 ...

  2. python汉诺塔算法解析,python实现的汉诺塔算法示例

    本文实例讲述了python实现的汉诺塔算法.分享给大家供大家参考,具体如下: 规则: 圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且规定 在小圆盘上不能放大圆盘 在三根柱子之间一次只能移动一个圆 ...

  3. python斗鱼抽奖_python3爬取斗鱼某些版块的主播人气

    python 3爬取斗鱼某些版块的主播人气 1.爬虫版块 import Test3 import urllib.request from bs4 import BeautifulSoup import ...

  4. python古诗朝代_python3爬取古诗词

    代码如下 导入需要使用的模块 import mysql.connector from requests_html import HTMLSession from multiprocessing imp ...

  5. python计算最大公约数函数_Python实现的求解最大公约数算法示例

    本文实例讲述了Python实现的求解最大公约数算法.分享给大家供大家参考,具体如下: 使用Python求解两个数的最大公约数的时候用到了前面介绍的分解质因式.其实,我写分解质因式程序的时候就是因为发现 ...

  6. python写排列组合_Python实现的简单排列组合算法示例

    本文实例讲述了Python实现的简单排列组合算法.分享给大家供大家参考,具体如下: 1.python语言简单.方便,其内部可以快速实现排列组合算法,下面做简单介绍 2.一个列表数据任意组合 主要是利用 ...

  7. python中最小公倍数函数_Python实现的求解最小公倍数算法示例

    这篇文章主要介绍了Python实现的求解最小公倍数算法,涉及Python数值运算.判断等相关操作技巧,需要的朋友可以参考下 本文实例讲述了Python实现的求解最小公倍数算法.分享给大家供大家参考,具 ...

  8. 用python编写一个汉诺塔的移动函数_python实现的汉诺塔算法示例

    本文实例讲述了python实现的汉诺塔算法.分享给大家供大家参考,具体如下: 规则: 圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且规定 在小圆盘上不能放大圆盘 在三根柱子之间一次只能移动一个圆 ...

  9. Python描述 LeetCode 70. 爬楼梯

    Python描述 LeetCode 70. 爬楼梯   大家好,我是亓官劼(qí guān jié ),在[亓官劼]公众号.CSDN.GitHub.B站等平台分享一些技术博文,主要包括前端开发.pyt ...

最新文章

  1. rsync 服务与配置文档
  2. windows server 2008R2下的mysql主从同步配置
  3. 工业以太网交换机的专业术语
  4. linux命令切换tty
  5. Vb6 Modbus TCP通讯示例源代码
  6. 文件夹html文件批量替换,DirRplacer(文件批量替换工具)
  7. 绿色清爽win7电脑主题 +炫酷紫色win7主题+美女写真电脑主题
  8. 提取swf素材_网页游戏素材提取工具及提取教程
  9. 用飞书来谈恋爱,飞书机器人定时给女朋友问好!
  10. LaTeX插入大尺寸JPG图片出现纵横比异常水平被压缩的解决方法
  11. pandas读取csv文件UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xca in position 37: invalid contin
  12. HTTP之Chunk
  13. 数字 IC 技能拓展(1)Xilinx_Vivado_SDK_2019.1 安装详细教程
  14. web编程期中项目作业
  15. springcloud微服务项目解析与服务拆分
  16. 计算机考研零基础英语怎么复习,考研英语复习办法千万种,总有一种适合你!...
  17. Smart210学习记录(十二) 之块设备
  18. linux用户解锁pam_tally,多次登录失败用户被锁定及使用Pam_Tally2解锁
  19. Java继承(什么是继承)
  20. 嵌入式 Linux 驱动开发你想知道的都在这

热门文章

  1. 【硬核】教你如何正确配置ipv6
  2. 30岁前如何达到年薪10万
  3. shell看服务器版本信息,xshell查看服务器配置
  4. Mysql查看慢查询日志
  5. Centos7远程登录工具Xshell7的使用
  6. 《柯南》剧场版里的物联网恐怖袭击,能成真吗?
  7. 开启VMWare的3D加速
  8. (006)网络编程,反射及其应用,MySQL数据库
  9. Java基础---Markdown基本语法和常用dos命令
  10. 4. 判断一个整数是否为水仙花数