最大连续子数组和

作者: 逍遥_9353 | 来源:发表于2018-04-23 17:36 被阅读77次

/*

最大连续子数组和

给定一个整数数组,数组里可能有正数、负数和零。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。例如,如果输入的数组为{1,-2,3,10,-4,7,2,-5},和最大的子数组为{3,10,-4,7,2},那么输出为该子数组的和为18.

*/

/*

思路:

    令currsum是当前元素结尾的最大连续子数组的和,maxsum是全局的最大子数组的和,当往后扫描时,对第j个元素有两种选择,要么放入前面找到的子数组,要么作为新子数组的第一个元素:如果currsum>0,则令currsum加上a[j];如果currsum<0,则current(j)为以j结尾的最大连续子数组的和,那么currsum(j)=max{0,currsum[j-1]}+a[j].如果maxsum<currsum,则更新maxsum=currsum:否则maxsum保持原值,不更新。

*/

#include<iostream>

using namespace std;

int main()

{

int array[100],i,n,maxsum,currsum;

cin>>n;

for(i=0;i<n;i++)

cin>>array[i];

currsum=0;

maxsum=array[0];

for(i=0;i<n;i++)

{

if(currsum>=0)

currsum+=array[i];

else

currsum=array[i];

if(currsum>maxsum)

maxsum=currsum;

}

cout<<maxsum<<endl;

return 0;

}

相关文章

  • 数组中连续子数组的最大乘积(LeetCode152. 乘积最大子

    题目 解析 在了解连续子数组最大乘积之前,请先参考数组中连续子数组的最大和(LeetCode53. 最大子序和)[...

  • 【数组】--零子数组、最大连续子数组、数字连续子数组

    零子数组:对于长度为N的数组,求连续子数组和和最接近0的值和子数组最大连续子数组:给定一个数组A,求A的连续子数组...

  • 连续最大和

    一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3...

  • 算法训练2

    题目描述:一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],...

  • 最大连续子数组和

    /* 最大连续子数组和 给定一个整数数组,数组里可能有正数、负数和零。数组中连续的一个或多个整数组成一个子数组,每...

  • 最大连续子数组和

    最大连续子数组和 题目描述: 输入一个整型数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每...

  • 和最大连续子数组

  • 求解最大子数组问题

    最大子数组:数组A的和最大的非空连续子数组。 考虑使用分治策略来求解。因此要将子数组划分为两个规模尽量相等的子数组...

  • 8. 动态规划

    1. 最大连续子数组和 求数组中连续的一个或多个子数组的最大和,并记录开始和结束位置 1.1 最大子矩阵和 算法思...

  • LeetCode 每日一题 [25] 最大子序和

    LeetCode 最大子序和 [简单] 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包...

网友评论

    本文标题:最大连续子数组和

    本文链接:https://www.haomeiwen.com/subject/wkbllftx.html