【Leetcode】之Climbing Stairs

原创 2016年06月01日 11:35:48

一.问题描述

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?

二.我的解题思路

这道题也很简单,一眼看上去很容易想到用递归的算法去做:T(n)=T(n-1)+T(n-2)。不过如果这样写递归式的话,算法复杂度比较高,有很多重复的子问题。那么此时要想到动态规划的算法,从底向上去做。那么就很容易可以写出测试程序如下:

class Solution {
public:
    int climbStairs(int n) {
        vector<int> tmp(n+1,0);
        tmp[0]=1;tmp[1]=1;
        if(n<=0) return 0;
        if(n<2) return tmp[n];
        int cnt=2;
        while(cnt<=n){
            tmp[cnt]=tmp[cnt-1]+tmp[cnt-2];
            cnt++;
        }
        return tmp[n];
    }
};


【LeetCode-面试算法经典-Java实现】【073-Climbing Stairs(爬楼梯)】

【070-Climbing Stairs(爬楼梯)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  You are climbing a stair case. It ta...

LeetCode 70 Climbing Stairs(爬楼梯)(动态规划)(*)

翻译你正在爬一个楼梯。它需要n步才能到底顶部。每次你可以爬1步或者2两步。那么你有多少种不同的方法爬到顶部呢?原文You are climbing a stair case. It takes n s...
  • NoMasp
  • NoMasp
  • 2016年01月14日 07:12
  • 4334

leetcode Climbing Stairs

You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb...

Leetcode 70. Climbing Stairs

You are climbing a stair case. It takes n steps to reach to the top.Each time you can either climb 1...

LeetCode 之 Climbing Stairs (方法2)

上一次说了自顶向下,没看的可以回去看看 climbing stairs 方法1(自顶向上) 由于本人是学渣,自顶向下太抽象肿么破。。。。尼玛哥教你一个更抽象的,自底向上,自底向上代码比较简单,基本思想...

[LeetCode]70.Climbing Stairs

【题目】 You are climbing a stair case. It takes n steps to reach to the top. Each time you can eithe...

【LeetCode】遇到一个很有趣的问题:Climbing Stairs

这个问题简单说来是这样的:你上楼梯可以选择一次迈一个台阶,或者一次迈两个台阶,问上N级台阶,一共有几种方法。 恍惚之间让我想到我万恶的中学数学,这似乎是排列组合问题,于是我又重温了一遍组合公...

leetcode之70. Climbing Stairs(C++解法 动态规划思想)

原题: You are climbing a stair case. It takes n steps to reach to the top.Each time you can either cl...

LeetCode------Climbing Stairs

题目简介 You are climbing a stair case. It takes n steps to reach to the top. Each time you can either...

LeetCode【70】Climbing Stairs

根据题目找规律,见下表策略选择          分析:斐波那契数列的变形           1 1 2 3 5 8 ……           本题将第二个数字1换成数字2,形成新的相同...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Leetcode】之Climbing Stairs
举报原因:
原因补充:

(最多只允许输入30个字)