Climbing Stairs

来源:互联网 发布:时时彩炫彩软件骗局 编辑:程序博客网 时间:2024/06/05 03:20

题目来自于:

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 or 2 steps. In how many distinct ways can you climb to the top?

思路:实际上就是一个斐波那契数列。f(i) = f(i-1) + f(i-2) ,第i阶可以是从第i-2阶爬上来的,也可以是从第i-1阶爬上来的。进一步发现在迭代到第i阶时,我们只要保存前面的f(i-1)和f(i-2),所以只要定义两个变量就可以,不用定义一个数组。

language:javascript
/** * @param {number} n * @return {number} */var climbStairs = function(n) {    var num1 = 1;    var num2 = 2;    var num3;    if(n == 1) return num1;    if(n == 2) return num2;    for(var i=2;i<n;i++){        num3 = num1 + num2;        num1 = num2;        num2 = num3;    }    return num3;};



0 0