求最大連續子陣列之和

2021-08-02 04:34:31 字數 1032 閱讀 9695

給定k個整數的序列,其任意連續子串行可表示為,其中 1 <= i <= j <= k。最大連續子串行是所有連續子串行中元素和最大的乙個, 例如給定序列,其最大連續子串行為,最大和 為20。

6

-211 -4

13 -5 -2

10-1012

34 -5 -23

37 -21

65 -8 3 2 5 0110

3-1 -5 -23-1

0 -2

0

20 11 13

10 1 4

10 3 5

10 10 10

0 -1 -2

0 0 0

兩種方法實現:

#include

#pragma warning (disable:4996)

#define n 10000

//實現一

void maxsubsum1(const a,int n)

else

if (sum>max)

}if (max < 0)

printf("%d %d %d\n",max,a[maxleft],a[maxright]);

}//最大連續子陣列之和

void maxsubsum(const a, int n)

else

}//求最大子陣列的右邊界

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

}//求最大子陣列的左邊界

for (i = right; i >= 0; i--)

}left = i+1;

if (s[right] < 0)

printf("%d %d %d\n",s[right],a[left],a[right]);

}int main()

maxsubsum(arr,num);

}return

0;}

最大連續子串行之和,最大連續子串行乘積

最大連續子串行之和問題描述為 陣列中里有正數也有負數,連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和,求所有子陣列的和的最大值。分析,對陣列a進行一遍掃瞄,sum i 為前i個元素中,包含第i個元素且和最大的連續子陣列,maxsum儲存當前子陣列中最大和,對於a i 1 來說,sum i ...

最大連續子串行之和

窮舉法思路 1,3,4,5最大子串行為4 5 9,4 2 3 5 最大子串行為4 2 3 5 10 窮舉數列的每個區間,將區間內的數相加,更新最大值,每計算乙個區間後求和的sum要清0 include main sum 0 進入下次計算sum清0 printf d max 非列舉思路 當輸入的數全為...

最大連續子串行之和

問題描述 leyni得到了乙個長度為n的序列,xiange要求leyni最多可以修改其中k個元素,每次修改的規則是只能將乙個數字修改為其相反數。leyni想知道在修改後,他能得到的所有長度為len的連續子串行中,最大的 子串行和的絕對值 為多少?input 輸入包含多組測試資料。對於每組測試資料 第...