1.20 动态规划(简单)

这篇具有很好参考价值的文章主要介绍了1.20 动态规划(简单)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

动态规划解题思路

动态规划的做题步骤

1. 爬楼梯

2.杨辉三角

3.买卖股票的最佳时机


动态规划解题思路

1.20 动态规划(简单),动态规划,算法

动态规划的做题步骤

1.20 动态规划(简单),动态规划,算法

1. 爬楼梯

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

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

示例 1:

输入:n = 2
输出:2
解释:有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶

示例 2:

输入:n = 3
输出:3
解释:有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 1 阶
2. 1 阶 + 2 阶
3. 2 阶 + 1 阶

提示:

  • 1 <= n <= 45

 分析:从分析来看,类似于斐波那契数列,f(0)=0,f(1)=1,f(2)=2,要用递归

1.20 动态规划(简单),动态规划,算法

#include <bits/stdc++.h>

using namespace std;


int fb(int n)
{
    if(n==1) return 1;
    if(n==2) return 2;
    return fb(n-1)+fb(n-2);
}
main()
{
    int n;
    cin>>n;
    cout<<fb(n);

}



2.杨辉三角

给定一个非负整数 numRows生成「杨辉三角」的前 numRows 行。

在「杨辉三角」中,每个数是它左上方和右上方的数的和。

1.20 动态规划(简单),动态规划,算法

示例 1:

输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

示例 2:

输入: numRows = 1
输出: [[1]]

提示:  

  • 1 <= numRows <= 30

分析:1.20 动态规划(简单),动态规划,算法 

#include <bits/stdc++.h>

using namespace std;

int dp[10][10];
void output(int n)
{
    int i,j;
    for(i=1; i<=n; i++)
    {
        for(j=1; j<=i; j++)
        {
            cout<<dp[i][j]<<" ";
        }
        cout<<endl;
    }
}
void init(int n)
{
    int i;
    for(i=1; i<=n; i++)
    {
        dp[i][i]=1;
        dp[i][1]=1;
    }
}
void f(int n)
{
    for(int i=3; i<=n; i++)
    {
        for(int j=2; j<i; j++)
        {
            dp[i][j]=dp[i-1][j]+dp[i-1][j-1];
        }
    }
}
main()
{
    int n;
    cin>>n;
    init(n);
    f(n);
    output(n);


}



3.买卖股票的最佳时机

121. 买卖股票的最佳时机

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

示例 1:

输入:[7,1,5,3,6,4]
输出:5
解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
     注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。

示例 2:

输入:prices = [7,6,4,3,1]
输出:0
解释:在这种情况下, 没有交易完成, 所以最大利润为 0。

提示:

  • 1 <= prices.length <= 105
  • 0 <= prices[i] <= 104

 分析:dp[i]表示前i天的最大利润1.20 动态规划(简单),动态规划,算法文章来源地址https://www.toymoban.com/news/detail-820525.html

#include <bits/stdc++.h>

using namespace std;

main()
{
    int x,i,n=1;
    int price[10];
    int minprice=100,maxprofit=0;
    while(cin>>x)
    {
        price[n]=x;
        n++;
    }
//      for(i=1;i<n;i++) cout<<price[i]<<" ";
    for(i=1;i<n;i++)
    {
        minprice=min(price[i],minprice);
        maxprofit=max(maxprofit,price[i]-minprice);
    }
cout<<maxprofit;


}



到了这里,关于1.20 动态规划(简单)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【算法优选】 动态规划之简单多状态dp问题——贰

    动态规划相关题目都可以参考以下五个步骤进行解答: 状态表示 状态转移⽅程 初始化 填表顺序 返回值 后面题的解答思路也将按照这五个步骤进行讲解。 给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 设计一个算法计算出最大利润。在满足以下约束条件下,

    2024年04月12日
    浏览(35)
  • 算法沉淀 —— 动态规划篇(简单多状态dp问题上)

    几乎所有的动态规划问题大致可分为以下5个步骤,后续所有问题分析都将基于此 1.、状态表示:通常状态表示分为以下两种,其中更是第一种为主。 以i为结尾 ,dp[i] 表示什么,通常为代求问题(具体依题目而定) 以i为开始 ,dp[i]表示什么,通常为代求问题(具体依题目而

    2024年04月11日
    浏览(43)
  • 二级制部署kubernetes(1.20)

    😘作者简介:一名运维工作人员。 👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。 🙏创作不易,动动小手给个点赞加关注吧,有什么意见评论区告诉我,一起学习。  生产环境中有两种部署k8s的方法:         kubeadm Kubeadm是一个K8s部署工具,提

    2024年02月14日
    浏览(35)
  • 1.20 什么是数据库

    数据库(Database)是指按照特定结构和规则组织、存储和管理数据的集合。它是用于持久化存储和检索数据的软件系统,为应用程序和用户提供数据访问和操作的功能。 数据库由以下几个主要组成部分构成: 数据: 数据库存储的是有组织的数据,可以是文本、数字、图像、

    2024年02月16日
    浏览(33)
  • 二进制部署kubernetes(1.20)

    😘作者简介:一名运维工作人员。 👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。 🙏创作不易,动动小手给个点赞加关注吧,有什么意见评论区告诉我,一起学习。  生产环境中有两种部署k8s的方法:         kubeadm Kubeadm是一个K8s部署工具,提

    2024年02月11日
    浏览(41)
  • AlmaLinux 9 安装 Go 1.20

    访问 https://go.dev/dl/,下载你想安装的版本,比如 go1.20.7.linux-amd64.tar.gz, (可选)删除旧版本, 安装 go, refer: https://go.dev/doc/install 完结!

    2024年02月14日
    浏览(37)
  • golang 1.20正式发布,更好更易更强

    预期中的Go 2不会有了,1.20也算是一个小gap,从中可以一窥Go未来的发展之路。对于Go来说,未来保持1.x持续演进和兼容性之外,重点就是让Go性能更优,同时保持大道至简原则,使用尽可能容易,从这两个方面带大家看看你1.20值得关注的特性。 1.18引入泛型,降低了编译速度

    2024年02月04日
    浏览(36)
  • k8s1.20二进制包安装

    主机IP地址 主机名 主机角色 主机配置 软件列表 10.58.32.31 k8s-master01 master,LB 2C4G kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubelet、kube-proxy、docker,haproxy、keepalived 10.58.32.32 k8s-master02 master,LB 2C4G kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubelet、kube-proxy、dock

    2024年02月16日
    浏览(40)
  • Kubeadm - K8S1.20 - 高可用集群部署(博客)

    1.系统设置 注意事项: master节点cpu核心数要求大于2 ●最新的版本不一定好,但相对于旧版本,核心功能稳定,但新增功能、接口相对不稳 ●学会一个版本的 高可用部署,其他版本操作都差不多 ●宿主机尽量升级到CentOS 7.9 ●内核kernel升级到 4.19+ 这种稳定的内核 ●部署k8

    2024年02月05日
    浏览(43)
  • 【动态规划专栏】--简单-- 动态规划经典题型

    目录 动态规划 动态规划思维(基础) 状态表示(最重要) 状态转移方程(最难) 初始化(细节) 填表顺序(细节) 返回值(结果) 解码方法⭐⭐ 【题目解析】   【算法原理】 C++ 算法代码 复杂度分析 【空间优化 - 滚动数组】 C++ 算法代码 复杂度分析 【DP边界、初始化

    2024年02月08日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包