【c++刷题笔记-动态规划】day32: 509. 斐波那契数 、 70. 爬楼梯 、 746. 使用最小花费爬楼梯

509. 斐波那契数 - 力扣(LeetCode)

cpp 复制代码
class Solution {
public:
    int fib(int n) {
        if(n==0){
            return 0;
        }
        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];
    }
};

70. 爬楼梯 - 力扣(LeetCode)

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

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

cpp 复制代码
class Solution {
public:
    int minCostClimbingStairs(vector<int>& cost) {
        int n=cost.size();
        vector<int>dp(n+1);
        dp[0]=0;
        dp[1]=0;
        for(int i=2;i<=n;i++){
            dp[i]+=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
        }
        return dp[n];
    }
};

总结

理解dp

数组的定义,它代表什么很重要。初始化,需要考虑清楚。递推公式需要理解

相关推荐
Reart5 分钟前
Leetcode 188.买卖股票的最佳时机4(718)
后端·算法
2601_950760798 分钟前
BCMA:急性髓系白血病免疫治疗的新型可行靶点
人工智能·算法·蛋白
fanchenxinok19 分钟前
学习笔记:LabVIEW中如何将解析S19/HEX的VI封装为子VI并供主VI调用
笔记·学习·labview·子vi
Reart21 分钟前
Leetcode 123.买卖股票的最佳时期3(内有随心谈,718)
后端·算法
2301_8090511434 分钟前
基本电子电路元件 学习笔记
笔记·学习
可编程芯片开发1 小时前
基于RMDCFT算法的天基雷达空间机动目标检测方法MATLAB仿真,对比FRFT和DFT算法
算法
noipp1 小时前
推荐题目:洛谷 B2099 矩阵交换行
线性代数·算法·矩阵
是个西兰花2 小时前
Linux:深入解析Linux线程原理与实现
linux·运维·c++·线程·互斥锁
一只小菜鸡..2 小时前
Stanford CS144 学习笔记 (二):传输层与数据通信机制
网络·笔记·学习
五条凪3 小时前
简单理解 BM25 与 TF-IDF
人工智能·算法·搜索引擎·全文检索·tf-idf