浙大数据结构: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;
	
}
相关推荐
罗湖老棍子几秒前
二维vector完全指南1:从定义到增删改查
数据结构·c++·算法·stl
再卷也是菜1 分钟前
C++篇(22)LRU Cache
数据结构·c++·算法
D_evil__22 分钟前
[C++高频精进] 现代C++特性:Lambda表达式
c++
程序猿多布24 分钟前
数据结构 之 栈和队列
数据结构··队列
喜欢吃燃面37 分钟前
算法竞赛中的堆
c++·学习·算法
zs宝来了1 小时前
HOT100系列-堆类型题
数据结构·算法·排序算法
报错小能手1 小时前
数据结构 带头节点的链表
数据结构·链表
sin_hielo1 小时前
leetcode 1590
数据结构·算法·leetcode
吃着火锅x唱着歌1 小时前
LeetCode 2748.美丽下标对的数目
数据结构·算法·leetcode
松涛和鸣1 小时前
DAY20 Optimizing VS Code for C/C++ Development on Ubuntu
linux·c语言·开发语言·c++·嵌入式硬件·ubuntu