当前位置: 首页 > news >正文

上海长宁网站建设公司西安百度推广公司

上海长宁网站建设公司,西安百度推广公司,企业信用信息查询公示系统年审,建设通账号上一篇:算法随笔_39: 最多能完成排序的块_方法2-CSDN博客 题目描述如下: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释&am…

上一篇:算法随笔_39: 最多能完成排序的块_方法2-CSDN博客

=====

题目描述如下:

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

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

示例 1:

输入:n = 2
输出:2
解释:有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶

示例 2:

输入:n = 3
输出:3
解释:有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 1 阶
2. 1 阶 + 2 阶
3. 2 阶 + 1 阶

=====

算法思路:

为了下面叙述方便,我们设m(i) 表示走i阶楼梯需要的方法数。

根据题目的要求和示例,我们可以发现如下的递推关系:

走第一步,我们有两种选择,1阶或2阶。

如果我们选择走1阶,那么我们还剩n-1阶需要完成。所需的方法数为m(n-1) 。

如果我们选择走2阶,那么我们还剩n-2阶需要完成。所需的方法数为m(n-2) 。

因此,当n>2时,走n阶楼梯总共的方法数m(n) =m(n-1) +m(n-2) 。

这是一道典型的动态规划题型。从这个公式,我们可以看出,求n阶楼梯的方法数仅仅取决于n-1,n-2阶楼梯的方法数。因此我们在代码实现的时候,只需要维护两个变量n_1,n_2来不断的计算出m(n) 。

由于我们已知m(1) =1,m(2) =2,我们可以写出如下的代码:

class Solution(object):def climbStairs(self, n):""":type n: int:rtype: int"""if n==1:return 1if n==2:return 2n_1=2n_2=1res=0for i in range(3,n+1):if i>3:n_2=n_1n_1=resres=n_1+n_2return res

http://www.yayakq.cn/news/978312/

相关文章:

  • 网站中文名注册wordpress文章样式出错
  • 贷款平台哪个好下款抖音seo排名软件
  • 商城网站建设源码个体工商户未做年报会罚款吗
  • 网站建设服务多少钱网站广告模板代码
  • 服务器中安装网站查看网站域名
  • 免费word模板下载哪个网站清远网站关键词优化
  • 建站工具 比较在深圳的中建公司
  • 代理ip注册网站都通不过建设网站的报告
  • 网站制作技术介绍网页生成pdf不显示
  • 瓦房店 网站建设建设网站需要展示什么区别
  • 芷江建设局的工作人员网站wordpress php 模板
  • 手机网站导航页wordpress图片优化
  • 朵朵软件网站建设wordpress备份恢复.wpress
  • 电商网站建设与运营方向就业前景wordpress 加载顺序
  • 邯郸做wap网站费用怎么做脱机网站
  • 哪里可以自己免费开网店太原网站优化方案
  • 网站建设文化策划书钢结构平台设计
  • 宜城市城乡建设局网站wordpress关键字替换
  • 开个网站建设公司多少钱苏州做网站哪家公司好
  • 桥头做网站淄博刚刚发布紧急通知
  • 网站如何为关键词做外链pano2vr输出html5教程
  • 蚌埠做网站的公司哪家好防伪查询网站
  • 正规的h5网站阳泉哪里做网站
  • 有哪些网站是做数据展示网站搭建平台有哪些
  • 上海专业建网站咸阳万企网站建设
  • 一个空间做两个网站跟我学seo从入门到精通
  • 北京的it外包公司南昌seo推广外包
  • 滨州淄博网站建设代理广告投放平台
  • 广州 网站制作 网站推广哈尔滨企业网站seo
  • 手机回收站企业年金怎么领取