Re: [討論] 令人印象深刻的遞迴問題?

看板C_and_CPP作者 (qqaa)時間13年前 (2011/04/05 00:11), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串9/9 (看更多)
: ======================================================================== : 如果,我是說如果,不考慮 performance。 : 左買右賣,每一個價錢只有買,賣,不做動作三種可能。 : 進出場可超過一次。 : 我選擇 dfs,因為 coding 簡單容易除錯。 : 程式碼:http://paste.plurk.com/show/414602/ : 如果考慮同一個價錢可賣掉之前的股份又買進目前的價位, : 就變得複雜許多,自行研究吧。 先考慮一下我們要不要在同一先賣再買: (a)如果在某一天買,代表在接下來的日子裡,至少有一天的價格會超過今天 (不然一定虧錢) (b)如果在某一天賣,代表在接下來的日子裡,價格不會更高了 (不然過幾天賣賺更多) 可以看到兩者不會同時發生,因此在這個問題中我們不用考慮同一天買+賣 那麼問題就簡單多了,要考慮的就是:在哪幾天賣? 由(b)可知,如果在第i天賣,則i滿足: for all j > i, prices[j] <= prices[i] (有沒有 = 應該不影響最後結果) 程式碼在此: http://codepad.org/3XhHtMWx 決定要不要買是在第 12 ~ 14 行,剩下的是算賺多少還有輸出訊息。 如果有錯誤之處還請大家幫忙指正。 (如果還要考慮手中的資本、手續費可能會很好玩) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.146.40
文章代碼(AID): #1DcUt8EL (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1DcUt8EL (C_and_CPP)