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

子区间问题

子区间问题将持续更新中……

目录

问题概述 

例题 

1.子区间和的最大值


问题概述 

子区间与子序列不同,它要求必须是从原区间中连续的取出一段,解决这类问题,最常用的方法就是前缀和与动态规划,也常常会结合哈希表,set集合等进行优化

例题 

1.子区间和的最大值

题目描述

Given an array of n integers, your task is to find the maximum sum of values in a contiguous, nonempty subarray.

输入

The first input line has an integer n(1 ≤ n ≤ 2*105): the size of the array.
The second line has n integers x1,x2,...,xn(-109 ≤ xi ≤ 109): the array values.

输出

Print one integer: the maximum subarray sum.

样例输入

8
-1 3 -2 5 3 -5 2 2

样例输出

9

思路:动态规划。用dp[i]记录以i为结尾的子区间的最大和,状态转移:两种情况:续在前一个数后面,dp[i]=dp[i-1]+x[i];以i为开头重新开始一个数组dp[i]=x[i],找最大值即可。

代码:

#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const ll N=200010;
int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int n;cin>>n;vector<ll>x(n+1,0),dp(n+1,0);//以i为结尾的子区间的最大值 ll ans=LLONG_MIN; for (int i=1;i<=n;i++){cin>>x[i];dp[i]=max(x[i],x[i]+dp[i-1]);ans=max(ans,dp[i]);}cout<<ans;
}

http://www.dtcms.com/a/313301.html

相关文章:

  • 差分 前缀和
  • 无人机集群协同三维路径规划,采用冠豪猪优化器(Crested Porcupine Optimizer, CPO)实现,Matlab代码
  • 【Django】-8- 视图和模型的关联
  • Linux下Redis常用命令
  • Java线程安全类设计思路总结
  • 深入理解Python的`__missing__`方法:动态处理字典中不存在的键: Effective Python 第18条
  • 网络规划与设计5个阶段内容
  • 大模型学习--第一天
  • Linux命令基础(上)
  • day 44 文件的规范书写与拆分
  • LCL滤波器及其电容电流前馈有源阻尼设计软件【LCLAD_designer】
  • 机器学习——决策树(DecisionTree)
  • 分享两个问题及其解决方法:发送AT没反应和wifi模块连接不上热点
  • Java设计模式之行为型模式(访问者模式)应用场景分析
  • MATLAB小波分析工具包进行时间序列的小波功率谱分析
  • 基于Matlab的深度学习智能行人检测与统计系统
  • FastAPI入门:安全性
  • 网安-逻辑漏洞-23登陆验证
  • 【系统编程】错误处理、读写缓冲区及位图
  • 文章分享---《Keil 再升级,修复了这些bug》
  • [自动化Adapt] 录制引擎
  • Nginx 相关实验(1)
  • C语言数据结构(7)贪吃蛇项目2.贪吃蛇项目实现
  • 分离还是统一,这是个问题
  • STM32F103_Bootloader程序开发13 - 巧用逆向拷贝,实现固件更新的“准原子”操作,无惧升级中的意外掉电
  • 时间空间复杂度
  • 高质量数据集|从武汉光谷《面向科技情报大模型的高质量数据集建设》招标项目谈起
  • 实现游戏排行榜
  • SpringBoot项目数据脱敏(自定义注解)
  • 关于corn