浙大数据结构: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;
}
相关推荐
别NULL2 小时前
机试题——疯长的草
数据结构·c++·算法
CYBEREXP20083 小时前
MacOS M3源代码编译Qt6.8.1
c++·qt·macos
ZSYP-S4 小时前
Day 15:Spring 框架基础
java·开发语言·数据结构·后端·spring
yuanbenshidiaos4 小时前
c++------------------函数
开发语言·c++
yuanbenshidiaos4 小时前
C++----------函数的调用机制
java·c++·算法
唐叔在学习4 小时前
【唐叔学算法】第21天:超越比较-计数排序、桶排序与基数排序的Java实践及性能剖析
数据结构·算法·排序算法
ALISHENGYA4 小时前
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(switch语句)
数据结构·算法
tianmu_sama4 小时前
[Effective C++]条款38-39 复合和private继承
开发语言·c++
羚羊角uou5 小时前
【C++】优先级队列以及仿函数
开发语言·c++
姚先生975 小时前
LeetCode 54. 螺旋矩阵 (C++实现)
c++·leetcode·矩阵