Maximum problem - 推理遊戲

Olive avatar
By Olive
at 2004-11-18T05:18

Table of Contents

※ 引述《Redsuns (ZZZzzz...)》之銘言:
: 1. 基本題
: 假設有一數列 {X1,X2,X3,X4,.....Xn}
: 請找出一演算法能夠找出一連續的子數列,使他們的和為最大值
: 例: {2,-4,2,5,-2,3,4,-5,3,1} 則其子數列{2,5,-2,3,4}有最大的和
目前想到的方法:

step1
把頭尾的負數去除掉(最大和的數列兩端必不含負數)
ex:{-3,-4,2,5,-2,3,4,-5,3,1}
--> {2,5,-2,3,4,-5,3,1}

step2
把連續的負數或正數相加
(這時首末項是正數, 共有奇數項, 正負間隔出現)
ex:{2,5,-2,3,4,-5,3,1}
--> {7,-2, 7,-5, 4}

step3
比較首尾兩項, 取小者, 將之與相鄰的負數相加
如果小於零就把它從數列中移除,
如果大於零把它跟旁邊的正數(即第三項或倒數第三項)相加

重複step3

ex:{7,-2,7,-5,4}
-->min(7,4)=4
-->{7,-2,7,-1}
^^捨去
-->{7,-2,7}
-->{5,7} (首末二項相等時,取首項或末項沒有關係)
-->{12}

加到最後的答案應該就是那個最大值了
只要在過程中紀錄頭尾兩項相對原始的數列是第幾項即可

--

All Comments

Maximum problem

Valerie avatar
By Valerie
at 2004-11-17T20:36
1. 基本題 假設有一數列 {X1,X2,X3,X4,.....Xn} 請找出一演算法能夠找出一連續的子數列,使他們的和為最大值 例: {2,-4,2,5,-2,3,4,-5,3,1} 則其子數列{2,5,-2,3,4}有最大的和 2. 進階題 題目大致一樣,要找一連續的子數列,使他們的乘積 ...

Re: 推理小謎題

Harry avatar
By Harry
at 2004-11-17T17:31
※ 引述《lahair (想學游泳的熊)》之銘言: : ※ 引述《citronrisky (瑞士基)》之銘言: : : b) : : 有四名登山客被大雪困在山上的小屋中, : : 他們在體力透支的情況下, : : 如果睡著了, 可能就會失溫而死, : : 於是他們各佔據屋子的一角, : : A沿著第一個邊走到 ...

邏輯推理

Irma avatar
By Irma
at 2004-11-17T17:04
※ 引述《novapig (雨豬)》之銘言: : ※ 引述《panyp ( )》之銘言: : : 在一棟房子裡,二樓有三個電燈泡,對應的三個開關(ABC)則是在一樓, : : 現在都是關閉的,一個人如何只上樓一次就知道哪一個開關對應哪一個燈泡? : : 想不到答案...麻煩大家幫忙 謝謝 ^^and#34; ...

類比題

Charlotte avatar
By Charlotte
at 2004-11-16T22:58
elevator : lift = soccer : ? a) watch b) play c) kick d) baseball e) football f) basketball -- 這題應該沒bug了 - ...

類比

Olive avatar
By Olive
at 2004-11-16T22:28
※ 引述《joejoe321321 (鴟夷子皮)》之銘言: : ※ 引述《citronrisky (瑞士基)》之銘言: : : 咖啡杯 : 甜甜圈 = 茶壺 : ? : : a.糖 : : b.褲子 : : c.襯衫 : : d.水管 : 是類似拓撲學嗎?? : 咖啡杯,甜甜圈一個洞 : 茶壺兩個洞... : ...