2014-10-16 49 views
0

我得到了一組數字。 (最大爲110組數字)算法:我可以達到的最大數量

例如,我有3個數字中的陣列:

5.0 , 90.0, 8.5

我有另一號碼。在這個例子中可以說98.6

如何確定總和低於單個數字(98.6)的最大數字?

在這個例子中,我們可以選擇低於98.6的90.0和8.5。

+3

這個問題太廣泛了。揹包問題是一個衆所周知的,有很多文獻記載的問題,其中有大量的算法和在線解決方案。你沒有試圖研究任何算法,也沒有公佈任何代碼。這不是一個代碼寫作服務,請自己嘗試一下,如果卡住了,請回來。 – CoryKramer 2014-10-16 11:59:05

回答

-2

「我怎麼能確定最大的數字我不能添加總和比單號下」

這是非常簡單的,只是(可能使用合併排序)排序的陣列,連續從開始加號直到總和小於給定數量。

編輯成問題過於寬泛: -

解決方案上面的建議是有效的,如果你只是想最大的數字在托架下降而不關心如何接近總和爲給定數。如果你關心後者,那麼谷歌「揹包問題」。

+0

這不會工作。在上面的例子(5.0,8.5,90)中,如果總和爲5.0 + 8.5 + 90,那麼答案將是103.5,這是錯誤的。它應該低於98.6。 (也是8.5 + 5.0也不正確) – 2014-10-16 12:00:13

+0

這個想法不行。假設我想留在'50'下,並且我有元素'48 ...,2,1'。該算法將添加「48」,然後停止,即使它也應該收集「1」元素。如果列表按升序排序,則會出現同樣的問題。 – CoryKramer 2014-10-16 12:00:17

+0

@Cyber​​所以,如果限制是50,那麼首先你要對數組1,2進行排序,... 48.它將總和所有小數字,直到sum小於50.我沒有得到你在說什麼 – ravi 2014-10-16 12:04:00

相關問題