1003 求最大連續子串行和的動態規劃問題

2021-07-23 16:22:05 字數 960 閱讀 7869

解題思路

在最初看到題目的時候,因為動態規劃往往要存很多中間變數,因此想到陣列是最方便的。但是要注意的是,題目中的n數值非常大,如果都採用陣列來儲存的話,會出現記憶體不足的情況,因此可以考慮用其他的方法。在本題中,可以分析到,在每次讀入乙個新的資料時,都可以根據新讀入的資料和過去的一些記錄的比較,來及時更新記錄。【引用】

過程說明

1.先輸入乙個數,將它存在temp中,並賦給sum,max。

2.再輸入下乙個數temp。

3.判斷之前的sum值是否小於0,若小於0,begin++,sum=temp;否則sum累加。

如果sum是負的,說明下乙個點就暫時是新的起始點了。也要重新把sum賦值。

4.判斷sum和max大小,如果sum大,pmax++,pmin=begin(易錯)

**引數說明

t:輸入幾組數

n:每組數的個數

temp:當前輸入數

max:當前最大字串值

sum:累加值

#include

using

namespace

std;

int main()

else

sum += temp;

if (sum > max)

}if (i != 0)

cout

<< endl;

cout

<< "case "

<< i + 1

<< ":"

<< endl;

cout

<< max << " "

<< pmin << " "

<< pmax<"pause");

return

0;}

求最大連續子串行的和

小王的賬本 小王出門打零工,工作很不穩定,收入也很不穩定,他找了乙個賬本記錄他每天的支出,例如 1月1日 收入320 1月2日 沒找到工作,吃飯花了30 1月3日 掙50 1月4日 無工作,吃飯花了17 1月5日 無工作,租房 吃飯花了2600 年底了,小王想知道自己賬本上哪一段時間掙錢掙的最多。剛...

HDU dp練習 1003 最大連續子串行

題目 problem description 給定k個整數的序列,其任意連續子串行可表示為,其中 1 i j k。最大連續子串行是所有連續子串行中元素和最大的乙個,例如給定序列,其最大連續子串行為,最大和 為20。在今年的資料結構考卷中,要求編寫程式得到最大和,現在增加乙個要求,即還需要輸出該 子串...

1003 最大連續子串和

乙個經典問題,對於乙個包含負值的數字串array 1.n 要找到他的乙個子串array i.j 0 i j n 使得在array的所有子串中,array i.j 的和最大。這裡我們需要注意子串和子串行之間的區別。子串是指數組中連續的若干個元素,而子串行只要求各元素的順序與其在陣列中一致,而沒有連續的...