浙大数据结构: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;
	
}
相关推荐
小七在进步18 分钟前
数据结构:用栈实现队列
开发语言·数据结构
拳里剑气35 分钟前
C++算法:优先级队列
开发语言·c++·算法·优先级队列
小七在进步35 分钟前
数据结构:用队列实现栈
开发语言·数据结构
东华万里1 小时前
第37篇 手撕二叉树与堆的底层逻辑
数据结构·算法
知无不研1 小时前
算法:判断一个数是不是2的幂
数据结构·算法
从零开始的代码生活_1 小时前
C++ 模板入门:函数模板、类模板与实例化机制
开发语言·c++·后端
远离UE410 小时前
UE5 compute shader 原子加
开发语言·c++·ue5
C+-C资深大佬10 小时前
C++ 显式类型转换详解:static_cast、dynamic_cast、const_cast、reinterpret_cast
开发语言·c++
码少女11 小时前
数据结构——哈希表的基础
数据结构·散列表
luj_176812 小时前
心形曲线轨迹控制三大关键技术
c语言·开发语言·c++·经验分享·算法