【动态规划】最长上升子序列、最大子数组和题解及代码实现

Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法......感兴趣就关注我吧!你定不会失望。

 

🌈个人主页:主页链接

🌈算法专栏:专栏链接

     我会一直往里填充内容哒!

🌈LeetCode专栏:专栏链接 

    目前在刷初级算法的LeetBook 。若每日一题当中有力所能及的题目,也会当天做完发出

🌈代码仓库:Gitee链接

🌈点击关注=收获更多优质内容🌈

 介绍了动态规划相关的题目与题解.

目录

题目:最长上升子序列

题解:

代码实现:

 题目:最大子数组和

题解:

 代码实现:

完结撒花:


题目:最长上升子序列

题解:

首先进行分析,这题的状态是什么?

状态为:前i个上升子序列的长度.

属性为:max(因为题目为最长)

所以令dp[i]初始化为1(本身也是一个长度)

之后循环遍历前i个字符,若发现其满足a[j]<a[i] 则更新子序列

状态方程为:dp[i]=max(dp[i],dp[j]+1]

代码实现:

#include<iostream>
#include<algorithm>
using namespace std;
const int N=1010;
int a[N];
int f[N];
int main()
{
    int n=0;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    for(int i=1;i<=n;i++)
    {
        f[i]=1;
        for(int j=1;j<i;j++)
        {
            if(a[i]>a[j])f[i]=max(f[j]+1,f[i]);
        }
    }
    int res=-1e9-100;
    for(int i=1;i<=n;i++)res=max(res,f[i]);
    cout<<res;
}

 题目:最大子数组和

 

题解:

拿到题目也首先分析,这题的状态是什么?

找出一个具有最大和的连续数组,细看一下和上面那题十分的像.但这题要求得是连续的子数组

这题似乎也能用滑动窗口来做?

是不能的,因为有负数滑动窗口作左区间的无法判断何时进行缩进.

所以这里的状态为前i个数字中相加子数组的最大值.

也就是每一个dp[i]存储的都是之前的最优解

所以我们要考虑的就是 当前第i位的数字,是用他本身,还是加上之前的dp[i-1]后再加它本身.(本身是一定要加的,不然就不连续了).这就是我们的属性

所以状态方程为 dp[i]=max(nums[i],dp[i-1]+nums[i])

例如:

     

 代码实现:

#include <algorithm>
#include<iostream>
#include<vector>
using namespace std;
class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        vector<int>ans(nums.size()+1);
        if(nums.size()==0)return 0;
        ans[1]=nums[0];
        for(int i=1;i<ans.size();i++)
        {
            ans[i]=nums[i-1];
            ans[i]=max(ans[i],ans[i-1]+nums[i-1]);
        }
        int t=-1e5;
        for(int i=1;i<ans.size();i++)
        {
            if(ans[i]>t)t=ans[i];
        }
        return t;
    }
};

完结撒花:

🌈本篇博客的内容【动态规划:最长上升子序列、最大子数组和题解及代码实现】已经结束。

🌈若对你有些许帮助,可以点赞、关注、评论支持下博主,你的支持将是我前进路上最大的动力。

🌈若以上内容有任何问题,欢迎在评论区指出。若对以上内容有任何不解,都可私信评论询问。

🌈诸君,山顶见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/416.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JDK如何判断自己是什么公司的

0x00 前言 因为一些事情&#xff0c;遇到了这样一个问题&#xff0c;JDK如何判断自己是什么公司编译的。因为不同的公司编译出来&#xff0c;涉及到是否商用收费的问题。 平时自己使用的时候&#xff0c;是不会考虑到JDK的编译公司是哪一个&#xff0c;都是直接拿起来用&#…

指针和数组笔试题解析【下篇】

文章目录&#x1f441;️6.指针笔试题&#x1f440;6.1.试题&#xff08;1&#xff09;&#x1f440;6.2.试题&#xff08;2&#xff09;&#x1f440;6.3.试题&#xff08;3&#xff09;&#x1f440;6.4.试题&#xff08;4&#xff09;&#x1f440;6.5.试题&#xff08;5&am…

四边形不等式技巧(上)

文章目录1、引入1.1 题目描述1.2 思路分析1.3 代码实现1.4 小结2、题目二2.1 题目描述2.2 思路分析2.3 代码实现2.4 小结3、题目三&#xff1a;合并石子3.1 题目描述3.2 思路分析3.3 代码实现3.4 枚举优化3.5 对数器4、四边形不等式技巧特征5、应用&#xff1a;画家问题5.1 题目…

金三银四最近一次面试,被阿里P8测开虐惨了...

都说金三银四涨薪季&#xff0c;我是着急忙慌的准备简历——5年软件测试经验&#xff0c;可独立测试大型产品项目&#xff0c;熟悉项目测试流程...薪资要求&#xff1f;5年测试经验起码能要个20K吧 我加班肝了一页半简历&#xff0c;投出去一周&#xff0c;面试电话倒是不少&a…

javaSE系列之继承与多态

&#x1f497; &#x1f497; 博客:小怡同学 &#x1f497; &#x1f497; 个人简介:编程小萌新 &#x1f497; &#x1f497; 如果博客对大家有用的话&#xff0c;请点赞关注再收藏 &#x1f31e; javaSE系列之继承与多态继承关键字extends父类与子类在子类中访问父类的成员变…

【c++】继承

目录 一、继承的表现 子类对父类成员的访问权限 二、父类与子类之间的相互赋值 三、继承的作用域 如果是父类和子类构成隐藏呢&#xff1f; 四、子类的成员函数怎么写 1.default构造函数 2.析构函数 所以析构函数不需要我们显式调用。 五、继承与友元函数 六、继承与静…

记录使用chatgpt的复杂经历

背景 由于最近要写论文&#xff0c;c站的gpt也变样了&#xff0c;无奈之下和同学借了一个gpt账号&#xff0c;才想起没有npv&#xff0c;不好意思去要&#xff0c;也不想买&#xff0c;于是我找了很多临时免费的直到我看到有一家&#xff0c;邀请10人即可&#xff0c;而且只用…

力扣-股票的资本损益

大家好&#xff0c;我是空空star&#xff0c;本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目&#xff1a;1393. 股票的资本损益二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他…

码农饭碗不保——ChatGPT正在取代Coder

码农饭碗不保——ChatGPT正在取代Coder 最近被OpenAI的ChatGPT刷屏了。我猜你已经读了很多关于ChatGPT的文章&#xff0c;不需要再介绍了。假如碰巧您还不太了解ChatGPT是什么&#xff0c;可以先看一下这篇文章&#xff0c;然后再回来继续。 与ChatGPT对话很有趣&#xff0c;…

GPT4论文翻译 by GPT4 and Human

GPT-4技术报告解读 文章目录GPT-4技术报告解读前言&#xff1a;摘要1 引言2 技术报告的范围和局限性3 可预测的扩展性3.1 损失预测3.2 人类评估能力的扩展4 能力评估4.1 视觉输入 !!!5 限制6 风险与缓解&#xff1a;7 结论前言&#xff1a; 这篇报告内容太多了&#xff01;&am…

【MySQL基础】13—变量、流程控制、游标和触发器

⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star~&#x1f60a; 如果文章对你有所帮助&#xff0c;可以点赞&#x1f44d;…

金丹一层 —— 深度刨析简单问题

目录 前言&#xff1a; 深度刨析问题 前言&#xff1a; 1.CSDN由于我的排版不怎么好看&#xff0c;我的有道云笔记比较美观&#xff0c;请移步有道云笔记 2.修炼必备 1&#xff09;入门必备&#xff1a;VS2019社区版&#xff0c;下载地址&#xff1a;Visual Studio 较旧的下…

Python基础—面向对象(超详版)

Python基础—面向对象面向对象简介什么是面向对象类与对象父类与子类面向对象的特性单继承与多继承单继承多继承多层继承封装多态重写与调用python重写python调用super函数前言&#xff1a; &#x1f3e0;个人主页&#xff1a;以山河作礼。 &#x1f4dd;​&#x1f4dd;​此专…

基于stm32智能语音电梯消毒系统

这次来分享个最近做的项目&#xff0c;stm32智能语音电梯消毒系统功能说明&#xff1a;在电梯&#xff0c;房间&#xff0c;客道区域内&#xff0c;检测到人&#xff0c;则执行相关动作&#xff01;例如继电器开关灯&#xff0c;喷洒酒精等行为。手机app/微信小程序可以控制需要…

滑动窗口算法

&#x1f34f;&#x1f350;&#x1f34a;&#x1f351;&#x1f352;&#x1f353;&#x1fad0;&#x1f951;&#x1f34b;&#x1f349;&#x1f95d; 啥是滑动窗口&#xff0c;它能解决什么样的问题&#xff1f; 文章目录&#x1f350;滑动窗口的概念&#x1f34f;适用场景…

Docker圣经:大白话说Docker底层原理,6W字实现Docker自由

说在前面&#xff1a; 现在拿到offer超级难&#xff0c;甚至连面试电话&#xff0c;一个都搞不到。 尼恩的技术社群&#xff08;50&#xff09;中&#xff0c;很多小伙伴凭借 “左手云原生右手大数据”的绝活&#xff0c;拿到了offer&#xff0c;并且是非常优质的offer&#…

蓝桥杯C++组怒刷50道真题

&#x1f33c;深夜伤感网抑云 - 南辰Music/御小兮 - 单曲 - 网易云音乐 &#x1f33c;多年后再见你 - 乔洋/周林枫 - 单曲 - 网易云音乐 50题才停更&#xff0c;课业繁忙&#xff0c;有时间就更&#xff0c;2023/3/14/15:06写下 目录 &#x1f44a;填空题 &#x1f33c;一…

ChatGPT作者John Schulman:我们成功的秘密武器

来源&#xff5c;TalkRL OneFlow编译 翻译&#xff5c;杨婷、徐佳渝、贾川 除了OpenAI&#xff0c;外界可能很少有人知道ChatGPT模型成功的真正原因&#xff0c;实际上&#xff0c;OpenAI也会对ChatGPT拥有的巨大影响力感到不可思议。这种困惑和惊喜就像工程师们解bug时获得的意…

在Docker上部署FastApi(最新)

目录 1 文件上传与新建目录 文件目录 2 修改requirements.txt文件 3 修改Dockerfile.txt文件 4 打包成镜像 5 运行启动 6 查看运行状态与日志 1 文件上传与新建目录 新建以下目录&#xff0c;其中.py文件是自己上传的 文件目录 新建以下文件 2 修改requirements.txt文件…

关于我拒绝了腾讯测试开发岗offer这件事

2022年刚开始有了向要跳槽的想法&#xff0c;之前的公司不能算大厂但在重庆也算是数一数二。开始跳槽的的时候我其实挺犹豫的 其实说是有跳槽的想法在2022年过年的时候就有了&#xff0c;因为每年公司3月会有涨薪的机会&#xff0c;所以想着看看那能不能涨&#xff08;其实还是…