题解 | #跳台阶#
跳台阶
http://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4
一、递归
正常情况会超时。
class Solution { public: int jumpFloor(int n) { if(n == 1) return 1; if(n == 2) return 2; return jumpFloor(n - 1) + jumpFloor(n - 2); } };
二、动态规划
严格意义上这个不算动态规划,但是利用了剪枝这种操作。
class Solution { public: int nums[1005]; int jumpFloor(int n) { nums[0] = 1; nums[1] = 2; for(int i = 2; i < n; i++){ nums[i] = nums[i-1] + nums[i-2]; } return nums[n-1]; } };