初级算法探索——动态规划篇(一)
问题:爬楼梯
假设你正在爬楼梯。需要 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 阶
js解决办法:
/** * @param {number} n * @return {number} */ // n+1的解法为 n的解法数目 和 n的解法中以1结尾的解法数目 之和 var climbStairs = function(n) { if (n == 1) { return 1; } if (n == 2) { return 2; } var endWithOne = 1; var lastNumMethod = 2; var curNumMethod = 0; for (var i = 3; i <= n; i++) { curNumMethod = (endWithOne + lastNumMethod); endWithOne = lastNumMethod; lastNumMethod = curNumMethod; } return curNumMethod; };
执行耗时:
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
【推荐实例】一个典型的多线程的程序