赞
踩
【问题描述】给定一个有n(n≥1)个整数的序列,要求求出其中最大连续子序列的和。
例如:
序列(-2,11,-4,13,-5,-2)的最大子序列和为20
序列(-6,2,4,-7,5,3,2,-1,6,-9,10,-2)
的最大子序列和为16。
规定一个序列最大子段和至少是0,如果小于0,其结果为0。
蛮力法
穷举所有连续子序列来得到。
设含有n个整数的序列a[0…n-1],穷举所有的连续子序列a[i…j],求出它的所有元素之和thisSum,并通过比较将最大值存放在maxSum中,最后返回maxSum。
long maxSubSum1(int a[],int n)
{
int i,j,k;
long maxSum=a[0],thisSum;
for (i=0;i<n;i++) //两重循环穷举所有的连续子序列
{
for (j=i;j<n;j++)
{
thisSum=0;
for (k=i;k<=j;k++)
thisSum+=a[k];
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。