leetcode-Easy-26-DP-Climbing Stairs

题目

You are climbing a stair case. It takes n steps to reach to the top.
Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?

爬楼梯,一次可以爬1梯,或者2梯,那么如果楼梯有n梯,那么爬到n梯有多少种可能

  • Example 1
Input: 2
Output: 2
Explanation: There are two ways to climb to the top.
1. 1 step + 1 step
2. 2 steps

  • Example 2
Input: 3
Output: 3
Explanation: There are three ways to climb to the top.
1. 1 step + 1 step + 1 step
2. 1 step + 2 steps
3. 2 steps + 1 step

  • 思路
    当我们到达n层,可以选择从n-1层上来,也可以选择从n-2层上来,类似于斐波那契函数:
    dp[n] = dp[n-1] + dp[n-2]
  • 解法
var climbStairs = function(n) {
  if (n === 1) return 1;
  if (n === 2) return 2;

  // n等于2的时候,有2中方法【1,1】和【2】,到达梯子2层
   // n等于1的时候,有1中方法【1】到达梯子1层

  let oneStep = 2, 
  let twoSteps = 1, 
  let current;

  //到达这里,说明n>=3
  // n=3,可以从2层上来,也可以从1层上来
  for (let i = 2; i < n; i++) {
      current = oneStep + twoSteps;
      twoSteps = oneStep;
      oneStep = current;
  }
  return current;
};
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 12,169评论 0 10
  • 大大沙场秋点兵, 三军威武众志成。 装甲长驱如猛虎, 战机翱翔似苍鹰。 列阵受阅朱日和, 铁血健儿举世惊。 扬我国...
    超级赋能王张胜萍阅读 3,757评论 10 7
  • 来源:https://numenta.com/blog/2016/01/11/machine-intelligen...
    Threathunter阅读 3,398评论 0 0
  • 花荣,你最近好吗?云漱岛一切都很好,最近三月天,桃花满天开遍。我想你。凡娉。 花荣,近日身体可好些了?我听何紡说你...
    凡秣阅读 2,870评论 1 0
  • 说件“鲜事”给你听。 有个丈夫跟太太亲热,抚摸着太太,很有情趣地赞美 “你的皮肤摸起来真细,绝不像四十岁的女人。”...
    思考的刺客阅读 3,017评论 0 0

友情链接更多精彩内容