【刷题】代码随想录算法训练营第三十八天|509、斐波那契数,70、爬楼梯,746、使用最小花费爬楼梯

目录

509、斐波那契数

讲解:https://programmercarl.com/0509.斐波那契数.html

动规是由前一个状态推导出来的,而贪心是局部直接选最优的,对于刷题来说就够用了。

复制代码
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];
    }
};

70、爬楼梯

讲解:https://programmercarl.com/0070.爬楼梯.html

c 复制代码
class Solution {
public:
    int climbStairs(int n) {
        if (n <= 1) return n; // 因为下面直接对dp[2]操作了,防止空指针
        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];
    }
};

746、使用最小花费爬楼梯

讲解:https://programmercarl.com/0746.使用最小花费爬楼梯.html

c 复制代码
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()];
    }
};
相关推荐
wzdark1 小时前
基于堆的优先队列实现原理与复杂度分析4
算法
老王熬夜敲代码3 小时前
BLAKE3:最快的密码学哈希函数
算法·密码学·哈希算法
hansang_IR3 小时前
【题解】P4460 [CQOI2018] 解锁屏幕
c++·算法
见闻小天地4 小时前
简博斯JG-C系列彩色激光同轴位移计:摄像头模组对位与行程测量的技术价值观察
人工智能·算法
葫三生4 小时前
《论三生原理》神话学构想与“神话历史”理论、《古史中的神话》思路异同?
大数据·人工智能·科技·深度学习·算法
liliangcsdn5 小时前
因子分析指标概念与示例
算法·机器学习
SupL!6 小时前
LoftQ原理
算法
Navigator_Z7 小时前
LeetCode //C - 1240. Tiling a Rectangle with the Fewest Squares
c语言·算法·leetcode
稻米哟7 小时前
力扣100——双指针
算法·leetcode
明志数科9 小时前
具身智能真机采集工程实践:5类高频失效模式与规避清单
人工智能·算法·机器学习