浙大数据结构:01-复杂度2 Maximum Subsequence Sum

数据结构MOOC

PTA习题

01-复杂度2 Maximum Subsequence Sum

cpp 复制代码
#include <iostream>
using namespace std;
const int M = 100005;
int a[M];
int main()
{
	int k;
	cin >> k;
	int f = 1;
	for (int i = 0; i < k; i++)
	{
		cin >> a[i];
		if (a[i] >= 0)//如果出现大于0则进行在线处理
			f = 0;
	}
	if (f)
	{  //全都小于0
		cout << "0" << ' ' << a[0] << ' ' << a[k - 1];
		return 0;
	}

	int s = 0, ma = -1, l = 0, j = 0, r;
      
	for (int i = 0; i < k; i++)
	{
		s += a[i];
		if (s > ma)
		{  //更新答案
			ma = s;
			r = a[i];
			l = a[j];
		}
		if (s < 0)
		{
			s = 0;
			j = i + 1;  //因为扔掉了左边,所以答案数组的左指针一定大于i
		}
	}
	cout << ma << ' ' << l << ' ' << r;
	return 0;
}
相关推荐
wqfhenanxc1 小时前
Mixing C++ and Rust for Fun and Profit 阅读笔记
c++·笔记·rust
R-G-B1 小时前
【MFC】 VS2022打开低版本的MFC,双击.rc文件,DIalog加载失败,页面弹窗fatal error RC***:cannot open*****
c++·mfc·vs打开较早版本mfc·双击.rc文件·dialog加载失败·fatal error rc·cannot open
敲上瘾1 小时前
基于Tcp协议的应用层协议定制
linux·运维·服务器·网络·c++·网络协议·tcp/ip
莹莹学编程—成长记2 小时前
string的模拟实现
服务器·c++·算法
喵先生!5 小时前
C++中的vector和list的区别与适用场景
开发语言·c++
xMathematics6 小时前
计算机图形学实践:结合Qt和OpenGL实现绘制彩色三角形
开发语言·c++·qt·计算机图形学·cmake·opengl
yuanManGan8 小时前
C++入门小馆: 深入了解STLlist
开发语言·c++
梁下轻语的秋缘8 小时前
每日c/c++题 备战蓝桥杯(P1049 [NOIP 2001 普及组] 装箱问题)
c语言·c++·学习·蓝桥杯
逐光沧海8 小时前
STL常用算法——C++
开发语言·c++
wuqingshun3141598 小时前
蓝桥杯 5. 交换瓶子
数据结构·c++·算法·职场和发展·蓝桥杯