当前位置:   article > 正文

算法训练营day41

算法训练营day41

动态规划理论基础(主要就是确定动态规划的几个步骤)

题目1:509. 斐波那契数 - 力扣(LeetCode)

  1. class Solution {
  2. public:
  3. int fib(int n) {
  4. if(n == 0) return 0;
  5. if(n == 1) return 1;
  6. int dp1 = 0;
  7. int dp2 = 1;
  8. int dp3 = 0;
  9. for(int i = 2;i <= n;i++) {
  10. dp3 = dp1 + dp2;
  11. dp1 = dp2;
  12. dp2 = dp3;
  13. }
  14. return dp3;
  15. }
  16. };

题目2:70. 爬楼梯 - 力扣(LeetCode)

  1. class Solution {
  2. public:
  3. int climbStairs(int n) {
  4. if(n == 1) return 1;
  5. if(n == 2) return 2;
  6. int dp1 = 1;
  7. int dp2 = 2;
  8. int dp3 = 0;
  9. for(int i = 3;i <= n;i++) {
  10. dp3 = dp1 + dp2;
  11. dp1 = dp2;
  12. dp2 = dp3;
  13. }
  14. return dp3;
  15. }
  16. };

题目3:746. 使用最小花费爬楼梯 - 力扣(LeetCode)

  1. class Solution {
  2. public:
  3. int minCostClimbingStairs(vector<int>& cost) {
  4. vector<int> dp(cost.size() + 1);
  5. if(cost.size() == 1) return cost[0];
  6. dp[0] = 0;
  7. dp[1] = 0;
  8. for(int i = 2;i <= cost.size();i++) {
  9. dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);
  10. }
  11. return dp[cost.size()];
  12. }
  13. };

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/641048
推荐阅读
相关标签
  

闽ICP备14008679号