最大子阵列
发布日期:2022-02-25 01:17:45 浏览次数:68 分类:技术文章

本文共 555 字,大约阅读时间需要 1 分钟。

在一个数组中找出和最大的连续几个数。(至少包含一个数)

例如:

数组A[] = [−2, 1, −3, 4, −1, 2, 1, −5, 4],则连续的子序列[4,−1,2,1]有最大的和6.

输入格式

第一行输入一个不超过1000的整数n。

第二行输入n个整数A[i]。

输出格式

第一行输出一个整数,表示最大的和。

样例输入

31 1 -2

样例输出

2

解题思路

简单的贪心入门题,只要设置一个max,然后对相加值进行循环比较就行

#include
using namespace std;const int inf = 0xfffff;//无限大 int main(){ int n; int a[1005]; int max,sum; cin>>n; for(int i = 0;i < n;i++){ cin>>a[i]; } max = -inf; for(int i = 0;i < n;i++){ sum = 0; for(int j = i;j < n;j++){ sum += a[j]; //printf("sum = %d\n",sum); if(max <= sum){ max = sum; } } } cout<
<

转载地址:https://blog.csdn.net/qq_37755550/article/details/80196900 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:计蒜客-跳跃游戏
下一篇:三值排序

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月29日 16时54分41秒