作者cory8249 (Cory)
看板C_and_CPP
標題[問題] 求數字和最大的區間
時間Mon Jun 13 14:07:40 2011
各位好:
小弟新手寫題目卡關
麻請各位多多幫忙了
題目:
http://judge.tnfsh.tn.edu.tw:8080/ShowProblem?problemid=b003
給你一串數字
要找出其中數字和最大的連續區間,求其和
範例:
-1 2 3 -2 1
答案是從 2+3 = 5
Code:
1.TLE的原始暴力解法:
http://www.pastie.org/2059471
2.答案不太正確的去頭去尾法:
http://www.pastie.org/2059080
3.不知道有沒有改善的合併計算法:
http://www.pastie.org/2059490
第一種解法的答案應該是正確的,但是數量太多就會超過時間限制 TLE
第二種是我另外想的方法,但是不太正確
因為判斷的過程中可能會捨棄掉最大值
Ex : 99 -100 1 1 1 1 -2
這樣子答案應該只要取99就好
而不是程式跑出來的 4
第三種算法
把連續正值、連續負值都先個別加起來
然後 ... 重新整合一個正負相隔的數列
這樣子不知道有沒有比較好 ??
感謝各位耐心看完亂七八糟的程式碼
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.255.23.104
原來如此....
感謝
只要2分鐘的題目
竟然可以想了2天
嗯...這似乎不是第一次了
看來我還真的不是普通的腦殘
※ 編輯: cory8249 來自: 111.255.23.104 (06/13 14:27)
推 suhorng:沒聽過"DP"的話...這題不是那麼容易吧 06/13 14:53
→ angleevil:有聽過,不會做 06/13 14:57
→ suhorng:通常教DP的話會教這個XD 算很有名的問題之一(?) 06/13 15:27
推 tropical72:我想看suhorng的原碼和我的想法是否有異,不過我看不到. 06/13 15:47
→ suhorng:那不是我的部落格... 06/13 15:53
推 tropical72:嗯, 我連進去了, 確實也是這種解法. XD 06/13 15:55