給定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 輸入包含多組測試資料。對於每組測試資料 第...