剑指 Offer 10- II. 青蛙跳台阶问题
题目链接:https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof/
本文采用JavaScript进行解题:一、斐波那契数列(迭代)
一、斐波那契数列(迭代)
1 /** 2 * @param {number} n 3 * @return {number} 4 * 青蛙跳台阶:一次可以跳上1级台阶(小跳)或2级台阶(大跳) 5 * 也就是说青蛙到达n级台阶的最后一跳可能小跳也可能是大跳; 6 * 如果n == 1,只有一种可能:1小跳到达; 7 * 如果n == 2,有两种可能:2次小跳到达或1次大跳到达; 8 * 以上述情况作为基础: 9 * 当n == 3时, 10 * 若最后一跳为小跳,在进行最后一跳之前蛙在n-1级台阶(也就是2级台阶); 11 * 若最后一跳为大跳,在进行最后一跳之前蛙在n-2级台阶(也就是1级台阶); 12 * 已知:2级台阶有2种可能,1级台阶有1种可能; 13 * 所以:n == 3时,存在2+1种跳法。 14 * 其它类推。 15 */ 16 var numWays = function (n) { 17 if(n < 2) return 1; 18 const MODE = 1000000007; 19 let j = 1, k = 1, l; 20 for(let i = 2; i <= n; i++) { 21 l = (j + k) % MODE; 22 j = k; 23 k = l; 24 } 25 return l; 26 };

浙公网安备 33010602011771号