演算法設計動態規劃 7 2 最大子段和 40分

2021-10-25 06:20:07 字數 628 閱讀 1386

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 ...