浙大数据结构: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;
}
相关推荐
2401_832131951 分钟前
模板编译期机器学习
开发语言·c++·算法
嵌入小生0071 分钟前
Data Structure Learning: Starting with C Language Singly Linked List
c语言·开发语言·数据结构·算法·嵌入式软件
ValhallaCoder4 分钟前
hot100-子串
数据结构·python·算法
2401_838472518 分钟前
单元测试在C++项目中的实践
开发语言·c++·算法
naruto_lnq13 分钟前
移动语义与完美转发详解
开发语言·c++·算法
还是奇怪27 分钟前
Python第四课:循环与数据结构深度解析
数据结构·windows·python·青少年编程·循环
赤水无泪38 分钟前
04 C++语言---运算符和符号
开发语言·c++
从此不归路1 小时前
Qt5 进阶【10】应用架构与插件化设计实战:从「单体窗口」走向「可扩展框架」
开发语言·c++·qt·架构
瓦特what?1 小时前
C++编程防坑指南(小说版)
android·c++·kotlin
sjjhd6521 小时前
C++模拟器开发实践
开发语言·c++·算法