首页 > 其他分享 >最大子段和问题

最大子段和问题

时间:2024-11-15 20:41:24浏览次数:1  
标签:最大 temp 子段 int 初值 元素 问题 maxm

最大子段和问题

——————以洛谷P1115为例

最大子段和,顾名思义就是在一段数组中选取元素和最大的子段(或最小)

这里总结了动态更新的写法:

int main()
{	
	int n, a, maxm, temp;
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%d", &a);
		if (i == 0) maxm = temp = a;
		else {
			temp = max(temp + a, a);
			maxm = max(maxm, temp);
		}
	}
	printf("%d", maxm);
	return 0;
}

我们有一串 \(n\) 个元素的数据,我们在每次读入数据时就进行操作,达到节约空间的目的

最大子段和的更新策略:

显然,我们对 tempmaxm 进行赋初值操作,输入第一个元素时,我们将它作为 tempmaxm 的初值

在此之后(从第二个读入的元素开始),我们每次判断 temp + aa 的大小,因为在累积 temp 这个变量时,若加上这次输入的 a 后的 tempa 还要小,那么我们就可以之间从当前的 a 重新开始累积(累积完 a 还不如从 a 重新累积

这是因为,我们的 maxm 变量存储的是过去的最大值(一直存在)

只要是 temp 的值超过了当前的 maxm ,我们就更新 maxm

注意!!!一定要对 tempmaxm 赋初值(赋上第一个元素的值或是一个极小值)保证不会出现初值遗留的问题

标签:最大,temp,子段,int,初值,元素,问题,maxm
From: https://www.cnblogs.com/dianman/p/18548625

相关文章

  • 104. 二叉树的最大深度
    题目链接解题思路普通的递归可能很简单,但是,现在要求,使用「二叉树递归套路」来思考问题每个节点需要什么信息?如果根节点,能够有一个「最大深度」的信息,那么直接返回就可以了。那么,这个信息可以通过左子树信息+右子树信息得到吗?max(左子树最大深度,右子树最大深度)+1......
  • 深入理解 MySQL 大小写敏感性:配置、问题与实践指南20241115
    深入理解MySQL大小写敏感性:配置、问题与实践指南在开发和部署MySQL数据库时,表名的大小写敏感性问题常常被忽略,却可能在跨平台迁移、团队协作或工具兼容性方面引发复杂的故障。本文将结合实际案例,深入探讨MySQL的lower_case_table_names参数,剖析其行为、配置方法以......
  • 对偶发接口频繁超时问题排查并解决
    问题排查现象       业务(重量级业务,比较庞大)高峰期接口偶尔频繁超时,重启机器即可恢复,或连续超时多次超时后pod内存溢出,直接触发重启后恢复。多次出现超时情况时jstack线程栈、jmap获取内存快照,对其进行分析后没明显异常。机器配置pod配置pod内存:5.1G(线上......
  • 无插件H5播放器EasyPlayer.js网页web无插件播放器选择全屏时,视频区域并没有全屏问题的
    EasyPlayer.jsH5播放器,是一款能够同时支持HTTP、HTTP-FLV、HLS(m3u8)、WS、WEBRTC、FMP4视频直播与视频点播等多种协议,支持H.264、H.265、AAC、G711A、MP3等多种音视频编码格式,支持MSE、WASM、WebCodec等多种解码方式,支持Windows、Linux、Android、iOS全平台终端的H5播放器,使用简单......
  • Python cache 内存泄漏问题
    @functools.cache函数装饰器在一些特殊情况的时候会影响变量引用计数器的计数,从而导致内存泄漏。比如:@functools.cache和@@functools.property一起使用的时候,或者更复杂的嵌套引用1fromfunctoolsimportwraps234classCacheManager:5def__init__(self):......
  • ybtoj——倍增问题
    A:点击查看代码#include<bits/stdc++.h>usingnamespacestd;constintN=1e6+10;intn[N];intm,mm,nn;intmain(){ scanf("%d%d",&m,&nn); for(inti=1;i<=m;i++){ cin>>n[i]; } while(nn--){ scanf("%d",&m......
  • LeetCode654.最大二叉树
    LeetCode刷题记录文章目录......
  • PKUSC2018 最大前缀和
    题意给一个长度为\(n\)的整数序列,求其\(n!\)种排列方式的最大前缀和(不能为空)的总和。\(n\leq20\)解法设全集为\(U\),考虑枚举作为最大前缀和的子集\(S\)。那么要求的就是\(S\)排列后严格最大前缀和在最后一个元素取到和方案数和\(U\backslashS\)排列后每个前缀......
  • MariaDB select多条结果,只取id最大的那一条
    要在MariaDB中选择多条结果但只取 id 最大的一条,可以使用子查询结合 ORDERBY 和 LIMIT。以下是一个示例SQL语句:SQL SELECT*FROMyour_tableORDERBYidDESCLIMIT1;这条语句的作用是从 your_table 表中按 id 降序排序,并只返回第一条记录,即 id 最......
  • 非凸优化问题与凸优化问题的区别
    非凸优化问题与凸优化问题的区别目录引言什么是优化问题?凸优化问题凸函数的定义凸优化问题的特点非凸优化问题非凸函数的定义非凸优化问题的特点凸与非凸优化问题的主要区别常见的凸优化问题与非凸优化问题的应用总结代码与简要解读引言在优化问题中,目标是寻找一个......