15| 最大子段和

一、核心思路

利用前缀和进行预处理,再遍历前缀和数组,计算每个位置的最大子段和并动态更新。

二、代码实现

cpp 复制代码
typedef long long LL;
const int N = 2e5 + 10;
LL st[N], n;

int main()
{
	cin >> n;
	LL premin = 0; 
	LL ret = -1e10;
	for (int i = 1; i <= n; i++)
	{
		int x; cin >> x;
		st[i] = st[i-1] + x;
	}
	for (int i = 1; i <= n; i++)
	{
		ret = max(ret, st[i] - premin);
		premin = min(premin, st[i]);
	}
	cout << ret << endl;
	return 0;
 } 
相关推荐
寻寻觅觅☆14 小时前
东华OJ-基础题-106-大整数相加(C++)
开发语言·c++·算法
时代的凡人14 小时前
0208晨间笔记
笔记
fpcc15 小时前
并行编程实战——CUDA编程的Parallel Task类型
c++·cuda
偷吃的耗子15 小时前
【CNN算法理解】:三、AlexNet 训练模块(附代码)
深度学习·算法·cnn
今天只学一颗糖15 小时前
1、《深入理解计算机系统》--计算机系统介绍
linux·笔记·学习·系统架构
2013编程爱好者16 小时前
【C++】树的基础
数据结构·二叉树··二叉树的遍历
NEXT0616 小时前
二叉搜索树(BST)
前端·数据结构·面试
testpassportcn16 小时前
AWS DOP-C02 認證完整解析|AWS DevOps Engineer Professional 考試
网络·学习·改行学it
化学在逃硬闯CS16 小时前
Leetcode1382. 将二叉搜索树变平衡
数据结构·算法
ceclar12316 小时前
C++使用format
开发语言·c++·算法