浙大数据结构: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;
}
相关推荐
爱装代码的小瓶子2 小时前
数据结构之队列(C语言)
c语言·开发语言·数据结构
QQ_4376643145 小时前
C++11 右值引用 Lambda 表达式
java·开发语言·c++
aramae5 小时前
大话数据结构之<队列>
c语言·开发语言·数据结构·算法
cccc来财6 小时前
Java实现大根堆与小根堆详解
数据结构·算法·leetcode
liulilittle6 小时前
C++/CLI与标准C++的语法差异(一)
开发语言·c++·.net·cli·clr·托管·原生
小狄同学呀6 小时前
VS插件报错,g++却完美编译?API调用错因分析
c++
程序员编程指南6 小时前
Qt 数据库连接池实现与管理
c语言·数据库·c++·qt·oracle
小乖兽技术6 小时前
C#与C++交互开发系列(二十四):WinForms 应用中嵌入C++ 原生窗体
c++·c#·交互
张北北.7 小时前
【深入底层】C++开发简历4+4技能描述6
java·开发语言·c++
刚入坑的新人编程8 小时前
暑期算法训练.9
数据结构·c++·算法·leetcode·面试·排序算法