浙大数据结构: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;
}
相关推荐
小糖学代码9 小时前
Linux:11.线程概念与控制
linux·服务器·c语言·开发语言·c++
Larry_Yanan12 小时前
QML学习笔记(四十)QML的ApplicationWindow和StackView
c++·笔记·qt·学习·ui
Miraitowa_cheems13 小时前
LeetCode算法日记 - Day 73: 最小路径和、地下城游戏
数据结构·算法·leetcode·职场和发展·深度优先·动态规划·推荐算法
野蛮人6号13 小时前
力扣热题100道之560和位K的子数组
数据结构·算法·leetcode
Kratzdisteln14 小时前
【C语言】Dev-C++如何编译C语言程序?从安装到运行一步到位
c语言·c++
小白不想白a15 小时前
每日手撕算法--哈希映射/链表存储数求和
数据结构·算法
Doro再努力15 小时前
数据结构04:力扣顺序表3道例题解题思路与代码实现
c语言·数据结构
Dream it possible!16 小时前
LeetCode 面试经典 150_栈_有效的括号(52_20_C++_简单)(栈+哈希表)
c++·leetcode·面试··哈希表
kyle~16 小时前
C++--- override 关键字 强制编译器验证当前函数是否重写基类的虚函数
java·前端·c++
HY小海16 小时前
【C++】AVL树实现
开发语言·数据结构·c++