解題思路:
在最初看到題目的時候,因為動態規劃往往要存很多中間變數,因此想到陣列是最方便的。但是要注意的是,題目中的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 的和最大。這裡我們需要注意子串和子串行之間的區別。子串是指數組中連續的若干個元素,而子串行只要求各元素的順序與其在陣列中一致,而沒有連續的...