浙大数据结构: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;
	
}
相关推荐
不爱吃炸鸡柳38 分钟前
单链表专题(完整代码版)
数据结构·算法·链表
Ricky_Theseus40 分钟前
C++右值引用
java·开发语言·c++
吴梓穆1 小时前
UE5 c++ 常用方法
java·c++·ue5
云栖梦泽1 小时前
Linux内核与驱动:9.Linux 驱动 API 封装
linux·c++
Morwit2 小时前
【力扣hot100】 1. 两数之和
数据结构·c++·算法·leetcode·职场和发展
SpiderPex2 小时前
第十七届蓝桥杯 C++ B组-题目 (最新出炉 )
c++·职场和发展·蓝桥杯
炘爚2 小时前
C++ 右值引用与程序优化
开发语言·c++
si莉亚2 小时前
ROS2安装EVO工具包
linux·开发语言·c++·开源
智者知已应修善业3 小时前
【51单片机单按键切换广告屏】2023-5-17
c++·经验分享·笔记·算法·51单片机
良木生香3 小时前
【C++初阶】C++入门相关知识(2):输入输出 & 缺省参数 & 函数重载
开发语言·c++