7-2 最大子段和 (40分)
給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,定義子段和為0。
要求演算法的時間複雜度為o(n)。
輸入有兩行:
第一行是n值(1<=n<=10000);
第二行是n個整數。
輸出最大子段和。
在這裡給出一組輸入。例如:
6
-2 11 -4 13 -5 -2
在這裡給出相應的輸出。例如:
20
**實現:
#include #include #include #define maxn 10000
using namespace std;
int main()
for (int i=1; i<=n; i++)
if(z==n) //所有負數則輸出0
else
}int t=s[1][1];
for (int i=1; i<=n; i++)
}cout<}
}
演算法設計 最大子段和問題 動態規劃
演算法設計 最大子段和問題 動態規劃 問題 給定有n個整數 包含負整數 組成的序列a1,a2,a3,an,求該序列子段和的最大值。注意 當所有整數均為負值時,定義其最大欄位和為0 由bj的定義 bj是1到j位置的最大子段和 易知,當bj 1 0時bj bj 1 aj,否則bj aj。則計算bj的動態...
動態規劃 最大子段和
給定乙個陣列a a0,a1,a2,an 求陣列中 連續子段之和 的最大值。1 最簡單的演算法 窮舉法 計算所有的連續子段之和,得出最大值 窮舉法 計算所有的子串行和 o n 3 public static int maxsum1 int data max tmp max tmp max return...
動態規劃 最大子段和
題目描述 給出一段序列,選出其中連續且非空的一段使得這段和最大。輸入輸出格式 輸入格式 第一行是乙個正整數nn,表示了序列的長度。第二行包含n個絕對值不大於10000的整數a i,描述了這段序列。輸出格式 乙個整數,為最大的子段和是多少。子段的最小長度為1。輸入輸出樣例 輸入樣例 1 72 4 3 ...