Day38 斐波那契数 + 爬楼梯 + 使用最小花费爬楼梯

509 斐波那契数

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

斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:

F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
给定 n ,请计算 F(n) 。

输入:n = 2
输出:1
解释:F(2) = F(1) + F(0) = 1 + 0 = 1
class Solution {
public:
    int fib(int n) {
        if(n == 0) return 0;
        vector<int> f(n + 1, 0);
        f[0] = 0;
        f[1] = 1;
        for(int i = 2; i <= n; i++)
        {
            f[i] = f[i - 1] + f[i - 2];
        }
        return f[n];
    }
};

70 爬楼梯

题目链接:70. 爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

输入:n = 2
输出:2
解释:有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶
class Solution {
public:
    int climbStairs(int n) {
        if(n == 1) return 1;
        vector<int> dp(n + 1, 0);
        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 使用最小花费爬楼梯

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

给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。

你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。

请你计算并返回达到楼梯顶部的最低花费。

输入:cost = [10,15,20]
输出:15
解释:你将从下标为 1 的台阶开始。
- 支付 15 ,向上爬两个台阶,到达楼梯顶部。
总花费为 15 。

思路:本题主要是题意需弄清楚,第0、1下标可以直接开始,即花费为0,楼顶是cost后面的位置,对于[10,15,20],楼顶是20后面的位置。

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];
    }
};

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-05-14 14:54:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-14 14:54:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-14 14:54:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-14 14:54:04       20 阅读

热门阅读

  1. 瑞鹤仙——熊市出英雄

    2024-05-14 14:54:04       9 阅读
  2. mysql 拆分字段位多行

    2024-05-14 14:54:04       9 阅读
  3. Docker alpine linux 修改时区

    2024-05-14 14:54:04       15 阅读
  4. 树和二叉树_1

    2024-05-14 14:54:04       10 阅读
  5. PRACH基带信号生成

    2024-05-14 14:54:04       13 阅读
  6. linux中进程相关概念(二)

    2024-05-14 14:54:04       10 阅读