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

LeetCode 509. 斐波那契数

题目链接:509. 斐波那契数

踩坑:dp0 = 0真就是第零个斐波那契数等于0,不是第一个。

思路:

确定dp数组的含义:dpi:第i个斐波那契数

递推公式:dpi = dpi-1 + dpi-2

dp数组初始化:dp0 = 0; dp1 = 1

遍历顺序:从前往后

代码:

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

LeetCode 70. 爬楼梯

题目链接:70. 爬楼梯

踩坑:在想怎么实现类似回溯的对所有组合的遍历。

思路:对于当前第n阶台阶,其一定是通过1阶或者2阶台阶上来的,换句话说就是从n-1阶跨1阶或者从n-2阶跨2阶上来的,所以到第n阶的方式 = 到n-1阶的方式 + 到n-2阶的方式。这里可以初始化dp0 = 1; dp1 = 1或者dp1 = 1; dp2 = 2;

代码:

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

LeetCode 746. 使用最小花费爬楼梯

题目链接:746. 使用最小花费爬楼梯

踩坑:以为从0开始和从1开始二选一,但其实是都可以。

思路:

dp数组的含义:dpi:到第 i 阶的最小花费

递推公式:dpi = min(dpi-1+costi-1, dpi-2+costi-2)

dp数组初始化:dp0 = 0; dp1 = 0;

遍历顺序:从前向后

代码:

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(cost[i-1]+dp[i-1], cost[i-2]+dp[i-2]);
        }
        return dp.back();
    }
};
相关推荐
Escalating_xu7 分钟前
C++11 彻底吃透 emplace_back 与 push_back(最全闭环:左右值|深浅拷贝|移动构造|万能引用|完美转发)
开发语言·c++
imuliuliang8 分钟前
关于从栈与队列看算法思维的演化路径7
算法
春生野草15 分钟前
个人笔记--大顶堆和基数排序
java·数据结构·算法
啦啦啦啦啦zzzz21 分钟前
oat++框架应用之do、dao、service
服务器·c++·mysql·oatpp
白狐_79828 分钟前
【408计算机网络|第04章·下|408-CN-04B】网络层(下):路由算法、RIP、OSPF、BGP、IPv6与路由器
计算机网络·算法·智能路由器
皓月斯语40 分钟前
B3865 [GESP202309 二级] 小杨的 X 字矩阵 题解
开发语言·c++·矩阵·题解
donoot2 小时前
PaddleOCR + PyMuPDF 生成【全兼容双层 PDF】完整实操指南
人工智能·算法·pymupdf·paddleocr·双层pdf
paeamecium2 小时前
【PAT甲级真题】- Rational Sum (20)
数据结构·c++·python·算法·pat考试·pat
Highcharts.js9 小时前
教程:基于 React + Highcharts 构建一个单页应用程序、按需数据拉取与图表渲染
开发语言·前端·数据结构·react.js·前端框架·highcharts·页面应用
王维同学10 小时前
Winsock 协议与名称空间 Provider 目录
网络·c++·windows·安全