leetCode 70. Climbing Stairs | 动态规划
2016-08-31 16:18
267 查看
70. Climbing Stairs
You are climbing a stair case. It takes n steps to reach to the top.Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?思考:
从上面的分析可以看出,f(top) = f(top - 1) + f(top - 2)使用动态规划,确定当前登到第i级台阶可能的步数是几。然后在查看下一级i+1台阶的可能步数。
代码实现如下:
先确定当前的结果,然后转移。确定下一步的结果。依次转移,直到结果。
2016-08-31 16:17:16
You are climbing a stair case. It takes n steps to reach to the top.Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?思考:
top | steps |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 5 |
5 | 8 |
6 | 13 |
... | ... |
代码实现如下:
class Solution { public: int climbStairs(int n) { if (n <= 0) return 0; if (n <= 2) return n; int a[2] = {1,2}; int tmp = 0; for (int i = 0; i < n - 2; ++i) { tmp = a[0] + a[1]; a[0] = a[1]; a[1] = tmp; } return tmp; } };总结:
先确定当前的结果,然后转移。确定下一步的结果。依次转移,直到结果。
2016-08-31 16:17:16
相关文章推荐
- 【动态规划】Leetcode编程题解:121. Best Time to Buy and Sell Stock Add to List
- 【Leetcode】152. Maximum Product Subarray 【动态规划】
- 动态规划——Unique Binary Search Trees 独一无二的二叉搜索树【LeetCode】
- Leetcode House Robber 动态规划
- LeetCode_32、53两题(动态规划)
- [leetcode] 221 Maximal Square(最大全1正方形 &动态规划)
- LeetCode 198 House Robber(强盗盗窃最大值)(动态规划)(*)
- LeetCode 70. Climbing Stairs 动态规划问题
- Leetcode 70. Climbing Stairs 爬楼梯 (递归,记忆化,动态规划)
- LeetCode--Maximum Subarray 最大连续子序列和 (动态规划)
- LeetCode--Best Time to Buy and Sell Stock (贪心策略 or 动态规划)
- leetcode 724. Find Pivot Index 左右边元素和相等 + 左边右边元素之和 + 动态规划DP
- LeetCode总结 -- 一维动态规划篇
- [LeetCode]05. Longest Palindromic Substring (动态规划)
- 动态规划第五讲——leetcode上的题目动态规划汇总(上)
- LeetCode 53/152 Maximum Subarray/Maximum Product Subarray(动态规划)
- Leetcode解题笔记 416. Partition Equal Subset Sum [Medium] 动态规划
- leetcode_121. Best Time to Buy and Sell Stock 求股票的最大收益 动态规划
- leetcode_198. House Robber 抢劫不相邻的房子,使得抢到的金钱数目最大, 动态规划
- leetcode 327. Count of Range Sum 字段和问题 + 动态规划DP解决 + 字段数 + 暴力求解真好