您的位置:首页 > 大数据 > 人工智能

[LeetCode] Climbing Stairs 爬楼梯

2018-02-28 14:06 561 查看
你正在爬楼梯。需要 n 步你才能到达顶部。

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

注意:给定 n 将是一个正整数。

示例 1:

输入: 2
输出: 2
说明: 有两种方法可以爬到顶端。

1.  1 步 + 1 步
2.  2 步


示例 2:

输入: 3
输出: 3
说明: 有三种方法可以爬到顶端。

1.  1 步 + 1 步 + 1 步
2.  1 步 + 2 步
3.  2 步 + 1 步


思路:递归或者动态规划

用两个整型变量a和b来存储过程值,首先将a+b的值赋给b,然后a赋值为原来的b,所以应该赋值为b-a即可。这样就实现了累加的过程,而不用存储所有的值

/**
* @param {number} n
* @return {number}
*/
var climbStairs = function(n) {
let a = 1, b = 1;
while (n-- > 0) {
b += a;
a = b - a;
}
return a;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode javascript