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

算法题(127):最大子段和

审题:
本题需要我们找到n个整数中连续且非空的最大子段和

思路:
方法一:前缀和

我们的思路是将每个索引位置的最大子段和求出,然后用answer进行max维护,最后输出answer即可

最大子段和怎么求?

子段和 = f[i] - f[left-1],而f[i]是确定的,所以我们只需要找到i之前的最小f[left]即可让子段和最大

i之前的最小f[left]怎么求?

我们可以从i==1开始用min维护

解题:
 

#include<iostream>
using namespace std;
int n;
const int N = 2e5 + 10;
long long f[N];//前缀和
long long answer = -1e20;
int main()
{cin >> n;long long num;for (int i = 1; i <= n; i++){cin >> num;f[i] = f[i - 1] + num;}long long  minnum = 0;//f[i]前面的最小子段和for (int i = 1; i <= n; i++){answer = max(answer, f[i] - minnum);minnum = min(minnum, f[i]);}cout << answer << endl;return 0;
}

第一步:录入数据并计算前缀和

第二步:计算索引为i位置的最大子段和

第三步:输出数据

注意:

1.由于涉及数据的加减,所以最好使用longlong数据类型

2.minnum其实就是当前最小的前缀和

P1115 最大子段和 - 洛谷

http://www.xdnf.cn/news/267.html

相关文章:

  • QT项目----电子相册(2)
  • 极验4 语序验证码 分析 极验4 w
  • WiFi“管家”------hostapd的工作流程
  • Manus AI:突破多语言手写识别技术壁垒之路
  • element-plus添加暗黑模式
  • AI大模型API文档的核心内容概述,以通用框架和典型实现为例
  • 超导材料的应用领域概述
  • UWP特性分析
  • vs如何快速找到多余的#region
  • 吃透LangChain(五):多模态输入与自定义输出
  • 人工智能学习框架完全指南(2025年更新版)
  • 基于VS Code 为核心平台的python语言智能体开发平台搭建
  • mysql collation_database 参数
  • spring:加载配置类
  • linux如何手动设置域名与 IP 地址的映射关系
  • 深入理解React中的Props与State:核心区别与最佳实践
  • AXOP36061S: 60V 高压单通道运算放大器
  • DemoGen:用于数据高效视觉运动策略学习的合成演示生成
  • PCM 参数深度解析:采样率、帧、缓存大小与多通道关系
  • 【C到Java的深度跃迁:从指针到对象,从过程到生态】第二模块·语法迁移篇 —— 第六章 函数革命:从过程到方法的重生
  • Yarn的安装及环境配置
  • PS中制作一张扣洞贴图
  • transient关键字深度解析
  • FA-YOLO:基于FMDS与AGMF的高效目标检测算法解析
  • 社保文档智能处理 python实现 谷歌 Gemini回答
  • 物联网分层架构全解析:从感知到应用的智能生态构建
  • Java漏洞原理与实战
  • 单调队列模板cpp
  • servlet-HTTP协议
  • 每日一题(小白)暴力娱乐篇32