当前位置: 首页 > news >正文

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

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

完结撒花:

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

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

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

🌈诸君,山顶见!

相关文章:

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

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…...

Ajax进阶篇02---跨域与JSONP

前言❤️ 不管前方的路多么崎岖不平&#xff0c;只要走的方向正确&#xff0c;都比站在原地更接近幸福 ❤️Ajax进阶篇02---跨域与JSONP一、Ajax进阶篇02---跨域与JSONP&#xff08;1&#xff09;同源策略1.1 什么是同源1.2 什么是同源策略&#xff08;2&#xff09;跨域2.1 什…...

C 语言编程 — 线程池设计与实现

目录 文章目录目录线程池&#xff08;Thread Pool&#xff09;tiny-threadpool数据结构设计Task / JobTask / Job QueueWorker / ThreadThread Pool ManagerPublic APIsPrivate Functions运行示例线程池&#xff08;Thread Pool&#xff09; 线程池&#xff08;Thread Pool&am…...

并发编程要点

Java并发编程中的三大特性分别是原子性、可见性和有序性&#xff0c;它们分别靠以下机制实现&#xff1a; 原子性&#xff1a;原子性指的是对于一个操作&#xff0c;要么全部执行&#xff0c;要么全部不执行。Java提供了一些原子性操作&#xff0c;例如AtomicInteger等&#xf…...

HDFS黑名单退役服务器

黑名单&#xff1a;表示在黑名单的主机IP地址不可以&#xff0c;用来存储数据。 企业中&#xff1a;配置黑名单&#xff0c;用来退役服务器。 黑名单配置步骤如下&#xff1a; 1&#xff09;编辑/opt/module/hadoop-3.1.3/etc/hadoop目录下的blacklist文件 添加如下主机名称&…...

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

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

FreeRTOS系列第1篇---为什么选择FreeRTOS?

1.为什么学习RTOS&#xff1f; 作为基于ARM7、Cortex-M3硬件开发的嵌入式工程师&#xff0c;我一直反对使用RTOS。不仅因为不恰当的使用RTOS会给项目带来额外的稳定性风险&#xff0c;更重要的是我认为绝大多数基于ARM7、Cortex-M3硬件的项目&#xff0c;还没复杂到使用RTOS的地…...

基于.NET Core内置浏览器窗体应用程序界面框架

更多开源项目请查看&#xff1a;一个专注推荐.Net开源项目的榜单 平常我们在做项目过程中&#xff0c;桌面软件具备操作高效、利用本地计算机做一些复杂运算、或者设定快捷操作等优势&#xff0c;但是桌面软件也有很多缺点&#xff0c;比如升级问题、系统兼容问题、系统bug排查…...

【数据结构初阶】一文带你学会归并排序(递归非递归)

目录 前言 递归实现 代码实现 非递归实现 代码实现 总结 前言 归并排序&#xff08;Merge sort&#xff09;是建立在归并操作上的一种有效的排序算法。该算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用。 作为一种典型的分而治之思想…...

Simulink壁咚(一)——What and How

目录 一、前言 二、Simulink 知多少 三、滤波算法 四、Model Verification 五、Model Coverage 六、Simulink测试实例 七、Simulink Test 八、Test Manager 九、Test Harness 十、 学习 一、前言 Simulink从2017b以后更加工程化和实用化&#xff0c;基于MBD的功能日趋…...

【PyTorch】Pytorch基础第0章

本文参加新星计划人工智能(Pytorch)赛道&#xff1a;https://bbs.csdn.net/topics/613989052 这是目录PyTorch的简介PyTorch 构建深度学习模型的步骤搭建pytorch使用环境PyTorch的简介 PyTorch 是一个开源的机器学习框架&#xff0c;由 Facebook 的人工智能研究院&#xff08;…...

Android学习总结

积累熟练掌握 Java 语言&#xff0c;面向对象分析设计能力&#xff0c;反射原理&#xff0c;自定义注解及泛型&#xff0c;多次采用设计模式重构公司项目&#xff1b;熟练掌握 IVM 原理&#xff0c;反射&#xff0c;动态代理以及对 ClassLoader 热修复有比较深的理解&#xff1…...

虚拟机ubuntu安装samba服务

安装samba apt-get install samba 新建一个共享目录 mkdir /home/l/work chmod 777 /home/l/work 配置服务 配置 /etc/samba/smb.confsudo smbpasswd -a l(添加用户名名称) 防火墙关闭 Ubuntu中 我们使用命令查看当前防火墙状态; sudo ufw status inactive状态是防火墙关闭…...

开发板中的内存压力测试,你了解多少?

1. 测试目的内存压力测试的目的是评估开发板中的内存子系统性能和稳定性&#xff0c;以确保它能够满足特定的应用需求。开发板通常用于嵌入式系统、物联网设备、嵌入式智能家居等场景&#xff0c;这些场景对内存的要求通常比较高。其内存压力测试的主要目的有&#xff1a;1.对确…...

MATLAB | 这些花里胡哨的热图怎么画

好早之前写过一个绘制相关系数矩阵的代码&#xff0c;但是会自动求相关系数&#xff0c;而且画出来的热图只能是方形&#xff0c;这里写一款允许nan值出现&#xff0c;任意形状的热图绘制代码&#xff0c;绘制效果如下&#xff1a; 如遇到bug请后台提出&#xff0c;并去gitee下…...

Java开发的一些编码建议

1、无论是类、方法、字段、变量&#xff0c;尽可能的限制他们的作用范围&#xff0c;可以避免出现不必要的错误&#xff1b;同时虚拟机也能有更大的优化空间。 2、错误越早发现越好&#xff0c;编译时发生错误比在运行时发生错误好。而且编译时错误能更好的定位问题所在。 这…...

【YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进NO.59】引入ASPP模块

前言作为当前先进的深度学习目标检测算法YOLOv8&#xff0c;已经集合了大量的trick&#xff0c;但是还是有提高和改进的空间&#xff0c;针对具体应用场景下的检测难点&#xff0c;可以不同的改进方法。此后的系列文章&#xff0c;将重点对YOLOv8的如何改进进行详细的介绍&…...

C++STL set/multiset容器 构造和赋值 大小和交换 插入和删除 查找和统计

文章目录set/multiset容器1 set容器 基本概念2 set容器 构造和赋值3 set容器 大小和交换4 set容器 插入和删除5 set容器 查找和统计set/multiset容器 1 set容器 基本概念 简介&#xff1a; 所有元素都会在插入时会被自动排序&#xff0c;例如&#xff0c;在set容器放入元素1、…...

产品研发项目进度管理软件工具有哪些推荐?整理10款最佳进度管理软件

项目进度管理是确保项目按时完成的关键过程&#xff0c;使用合适的项目进度管理工具能确保帮助项目管理者实时了解和控制项目的进展情况&#xff0c;及时发现和解决问题&#xff0c;减少项目风险&#xff0c;提高项目效率和管理水平。这里将整理出国内外最受欢迎的10款项目进度…...

「ML 实践篇」分类系统:图片数字识别

目的&#xff1a;使用 MNIST 数据集&#xff0c;建立数字图像识别模型&#xff0c;识别任意图像中的数字&#xff1b; 文章目录1. 数据准备&#xff08;MNIST&#xff09;2. 二元分类器&#xff08;SGD&#xff09;3. 性能测试1. 交叉验证2. 混淆矩阵3. 查准率与查全率4. P-R 曲…...

【ElevenLabs丹麦文语音实战指南】:20年AI语音工程师亲测的5大本地化避坑法则与自然度调优秘籍

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs丹麦文语音本地化实战的底层逻辑与认知重构 ElevenLabs 的语音合成能力并非仅依赖于多语言模型堆叠&#xff0c;其丹麦文&#xff08;da-DK&#xff09;本地化本质是声学特征解耦、韵律迁移与…...

针对现在的AI模型的token中转转包业务的分析

&#x1f4ca; 价格优势深度分析 1. 价格差异全景图&#xff08;2026年实测数据&#xff09; 服务类型1亿Token价格价格倍差适用场景超低价陷阱1351倍个人测试、极低质量需求主流中转站800-1,5006-11倍中小企业、开发者合规服务商3,000-5,00022-37倍企业级应用、生产环境官方…...

从零搭建 Geo 开源项目源码开发环境——以 GeoServer 为例

在地理信息&#xff08;GIS&#xff09;与空间数据服务开发中&#xff0c;Geo 系开源项目&#xff08;如 GeoServer、GeoPandas、GeoDjango 等&#xff09;非常常见。很多团队后期都会走到“读源码 / 改源码 / 二次开发”这一步&#xff0c;而第一步往往是&#xff1a;把源码跑…...

如何在智能电视上打造完美的家庭影院:Jellyfin Android TV客户端完整指南

如何在智能电视上打造完美的家庭影院&#xff1a;Jellyfin Android TV客户端完整指南 【免费下载链接】jellyfin-androidtv Android TV Client for Jellyfin 项目地址: https://gitcode.com/gh_mirrors/je/jellyfin-androidtv 想要将智能电视、NVIDIA Shield或亚马逊Fir…...

跨境漫游通信解析:全球漫游物联网卡的适配逻辑与行业应用

在跨境物联网行业中&#xff0c;除固定单一国家投放的设备外&#xff0c;有大量终端设备存在跨区域流动、多国家部署、不定向出海的使用需求。车载定位、跨境物流终端、移动式工控、巡回检测设备&#xff0c;这类硬件无法限定单一运营商网络&#xff0c;对多国网络切换、信号漫…...

OpenClaw 3 机集群(Windows + Linux 混合)一键脚本 + 完整配置

集群架构规划&#xff08;1 主 2 从&#xff09;统一安装脚本&#xff08;Windows PowerShell / Linux bash&#xff09;主节点配置&#xff08;gateway 调度&#xff09;从节点配置&#xff08;worker 注册到主&#xff09;集群通信、端口、令牌、存储一键启停、扩容、状态检…...

为OpenClaw智能体工作流配置Taotoken作为统一模型服务源

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为OpenClaw智能体工作流配置Taotoken作为统一模型服务源 在构建基于智能体&#xff08;Agent&#xff09;的自动化工作流时&#x…...

以 AIGC 贯通设计 — 生产 — 营销:集之互动推动服装电商供应链进入全域协同新阶段

在快时尚主导、高频上新成为标配、流量窗口以周甚至以天计算的今天&#xff0c;服装电商的核心竞争力早已从单一的产品力、营销力&#xff0c;转向全链路供应链效率的竞争。当前行业普遍面临的痛点不再是某一环节的短板&#xff0c;而是全链路割裂&#xff1a;设计端与市场需求…...

2026亲测:专业AI智能降重工具选这款就对了

2026 年降 AIGC 工具已经从“基础语义改写”进化为多维度智能优化系统&#xff0c;核心评测指标涵盖 AI 痕迹清除精准度、学术表达一致性、格式结构完整性、长段落逻辑流畅性、降重适配范围以及高校检测合规性。本次测评覆盖 8 款主流工具&#xff0c;测试内容包括中英文论文处…...

FantiaDL终极指南:如何快速下载Fantia平台上的所有内容

FantiaDL终极指南&#xff1a;如何快速下载Fantia平台上的所有内容 【免费下载链接】fantiadl Download posts and media from Fantia 项目地址: https://gitcode.com/gh_mirrors/fa/fantiadl FantiaDL是一款专为Fantia用户设计的强大开源下载工具&#xff0c;能够帮助你…...