算法 day 32

正式进入了动态规划。早苦动态规划久矣,这次每道题都要争取拿下。毕竟可以说是第一次系统练dp,学会思想,好好干。

斐波那契数

第一遍直接用递归做的,反正也不怕超时,这里代码就不贴了,贴个dp的;

cpp 复制代码
class Solution {
public:
    int fib(int n) {
      if(n<=1) return n;
      vector<int> dp(n+1);
      dp[0]=0;
      dp[1]=1;
      for(int i=2;i<=n;i++){
        dp[i]=dp[i-1]+dp[i-2];
      }
      return dp[n];
    }
};

爬楼梯

这个也是dp简单题,高中数学的递推难度。

cpp 复制代码
class Solution {
public:
    int climbStairs(int n) {
        if (n <= 1) return n; 
        vector<int> dp(n + 1);
        dp[1] = 1;
        dp[2] = 2;
        for (int i = 3; i <= n; i++) { // 注意i是从3开始的
            dp[i] = dp[i - 1] + dp[i - 2];
        }
        return dp[n];
    }
};

使用最小花费爬楼梯

过程也比较轻松写意的一道题

cpp 复制代码
class Solution {
public:
    int minCostClimbingStairs(vector<int>& cost) {
        vector<int> dp(cost.size()+1);
        dp[0]=0;
        dp[1]=0;
        for(int i =2;i<=cost.size();i++){
            dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
        }
        return dp[cost.size()];
    }
};
相关推荐
白狐_79812 分钟前
408 数据结构算法题 01:线性表暴力求解保分指南
java·数据结构·算法
乐观勇敢坚强的老彭24 分钟前
C++信奥:开关门、开关灯问题
开发语言·c++·算法
冻柠檬飞冰走茶25 分钟前
PTA基础编程题目集 7-31 字符串循环左移(C语言实现)
c语言·开发语言·数据结构·算法
Hi李耶38 分钟前
【LeetCode】4-寻找两个正序数组的中位数
算法·leetcode·职场和发展
图灵机z1 小时前
【算法提高课】AcWing 1027. 方格取数 长期攻克提高课-day3(3/219)
算法
hans汉斯1 小时前
计算机科学与应用|改进MeanShift算法在智能监控视频中的应用研究
图像处理·人工智能·功能测试·深度学习·算法·音视频
一次旅行2 小时前
AutoAWQ完整实战:MIT激活感知AWQ量化,模型显存减半、推理提速且精度无损
人工智能·python·算法
GrowthDiary0072 小时前
算法题:寻找二维数组top k问题
数据结构·python·算法
可编程芯片开发2 小时前
基于全阶观测器的三自由度运动系统状态反馈控制simulink建模与仿真
算法
kobesdu2 小时前
从零推导FAST-LIO的观测雅可比矩阵
人工智能·算法·矩阵