题解 | #跳台阶扩展问题#
跳台阶扩展问题
http://www.nowcoder.com/practice/22243d016f6b47f2a6928b4313c85387
描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶(n为正整数)总共有多少种跳法。
示例1
输入:
3
返回值:
4
数学方法:
class Solution { public: int jumpFloorII(int number) { return pow(2, max(0, number-1)); // 数学方法 } };
动态规划:
class Solution { public: int jumpFloorII(int number) { // 动态规划 if (number < 2) return 1; int dp1 = 1; int dp; for (int i = 2; i <= number; i++) { dp = 2 * dp1; dp1 = dp; } return dp; } };