浙大数据结构: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;
	
}
相关推荐
OliverH-yishuihan12 分钟前
开发linux项目-在 Windows 上 基于“适用于 Linux 的 Windows 子系统(WSL)”
linux·c++·windows
七禾页丫15 分钟前
面试记录12 中级c++开发工程师
c++·面试·职场和发展
wifi chicken33 分钟前
数组遍历求值,行遍历和列遍历谁更快
c语言·数据结构·算法
qingyun98944 分钟前
深度优先遍历:JavaScript递归查找树形数据结构中的节点标签
前端·javascript·数据结构
zmzb01032 小时前
C++课后习题训练记录Day56
开发语言·c++
编程小Y2 小时前
C++ Insights
开发语言·c++
bubiyoushang8882 小时前
基于蚁群算法的直流电机PID参数整定 MATLAB 实现
数据结构·算法·matlab
王老师青少年编程2 小时前
csp信奥赛C++标准模板库STL案例应用5
c++·stl·set·集合·标准模板库·csp·信奥赛
永远睡不够的入2 小时前
直接插入排序、希尔排序、选择排序
数据结构·算法·排序算法
历程里程碑2 小时前
hot 206
java·开发语言·数据结构·c++·python·算法·排序算法