【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 Climbing Stairs

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

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

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

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 either climb 1...

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

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

[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解题之70 #Climbing Stairs Java版 (青蛙跳台阶)

leetcode解题之70 #Climbing Stairs Java版 (青蛙跳台阶)

leetcode笔记:Climbing Stairs(斐波那契数列问题)

题目的大意是,已知有n阶楼梯,每次只能爬1阶或2阶楼梯,问爬到第n阶楼梯共有几种爬法。题目可以看成是,设f(n)表示爬到第n 阶楼梯的方法数,为了爬到第n阶楼梯,有以下两种选择: • 从第f(n-1)...

LeetCode之旅(16)-Climbing Stairs

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

[LeetCode]70. Climbing Stairs(求爬楼梯有几种方式)

70. Climbing Stairs原题链接 You are climbing a stair case. It takes n steps to reach to the top.Each ti...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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