浙大数据结构:01-复杂度1 最大子列和问题

数据结构MOOC

PTA习题

01-复杂度1 最大子列和问题

使用在线处理,遍历数组,如果当前数组和小于0则抛弃,每次更新最大值。

我们假设最终结果为数组中间的一段,那么左边剩余的部分和右边剩余的部分和一定小于0,对答案没有贡献。

cpp 复制代码
#include <iostream>
using namespace std;

const int M=100005;
int a[M];
int main()
{
    int k;
    cin>>k;
    for(int i=0;i<k;i++ )cin>>a[i];

    int s=0,ma=0;
    for(int i=0;i<k;i++)
    {
        s+=a[i];
        ma=max(s,ma);
        if(s<0)
        {
            s=0;
        }
}
    cout<<ma;
    
	return 0;
	
}
相关推荐
雪度娃娃1 分钟前
行为型设计模式——职责链模式
c++·设计模式·责任链模式
·心猿意码·11 分钟前
OCCT源码解析(二):NCollection解析
数据结构·c++
进击的荆棘12 分钟前
C++起始之路——C++11(下)
开发语言·c++·c++11·lambda
gumichef14 分钟前
栈和队列(2)
数据结构·算法·链表
许长安15 分钟前
C++ 原子变量与内存序:从std::atomic到release/acquire
开发语言·数据结构·c++·经验分享·笔记
sanqima16 分钟前
mscomm32.ocx串口插件的注册方法
c++·串口通信·ocx插件
进击的荆棘16 分钟前
递归、搜索与回溯——综合(下)
c++·算法·leetcode·深度优先·dfs
代码中介商2 小时前
C++ STL 容器完全指南(二):vector 深入与 stringstream 实战
开发语言·c++
澈2077 小时前
C++并查集:高效解决连通性问题
java·c++·算法
郝学胜-神的一滴8 小时前
Qt 入门 01-01:从零基础到商业级客户端实战
开发语言·c++·qt·程序人生·软件构建