PTA 最大子列和问题 思路分析 v1.0
一、前导
1. 题目信息
- 题目来源:PTA / 拼题A
- 题目地址: 最大子列和问题
二、解题思路分析
1. 题意理解
- 输入数据
6 //待统计的整数数量
-2 11 -4 13 -5 -2
- 输出最大子列和,如果是负数,输出0
20
- 题意
“最大子列和”:所有连续子列元素的和中最大者,如 -2 11 -4 13 -5 -2,最大的子列和就是11 -4 13的运算结果
2. 思路分析(重点)
- 本题可以按线性顺序从前向后处理:对输入数据进行求和,当总和小于0时,执行归零(为负数时输出0);对每次求和的结果进行判定:当求和结果 大于 最大值时,更新最大值
三、具体实现
1. 采用的数据结构
输入数据不需要存储,直接使用即可
2. 完整编码
- 依据思路分析进行实现
- 大家如有疑问或建议,欢迎留言 😃
#include<iostream>
using namespace std;
int main()
{
int number,value,sum=0,max=0;
cin>>number;
for(int i=0;i<number;i++)
{
cin>>value;
sum=sum+value;
if(sum<0)
sum=0;
else if(sum>max)
max=sum;
}
cout<<max;
return 0;
}