Re: [問題] Maximum Product

作者: pttworld (批踢踢世界)   2016-09-10 13:49:01
※ 引述《cutekid (可愛小孩子)》之銘言:
: 給定一個數字 N (由 1 ~ 9組成)
: 其中插入 K 個乘號,使最後相乘的值要最大
: 舉例:
: N = 746589, K = 2, 最大值 = 7465 x 8 x 9
: N = 1111114, K = 3, 最大值 = 11 x 11 x 11 x 4
: 請問這題除了 C(長度 - 1,K) 暴力搜尋
: 還有什麼比較好的算法嗎
: 謝謝 ^_^
一個數插入乘號使得乘積小於原數。
對於每一列n,
迭代比較列n-1之每一欄m,插入乘號後左乘以右之乘積,
乘積最大之m即為切點。
如left boundary ~ m形成的值大於m ~ right boundary,
列n之比較範圍為left boundary ~ m,反之為m ~ right boundary。
C++版本,輸出為切點索引值。
https://gist.github.com/anonymous/f4a2a632cd7f44a11ecd957fbd23dae1

Links booklink

Contact Us: admin [ a t ] ucptt.com