如果我們有n個列表,我們需要從每個列表中選擇一個數字,所選擇的數字不能再被選擇,如何進行選擇以獲得最大的總和n選定的號碼? 例如算法:從每個列表中選擇一個數字,找到最大數額
list1: 4 5 7.
list2: 3 5 7.
list3: 1 5
如果我們選擇7從list1的,最大的數,我們可以選擇在列表2是5(因爲同樣數量不能被選擇兩次),如果我們從列表2選擇圖5,我們只能選擇1從項目list3,所以總數是7+5+1=13
這不是最好的選擇。但是,如果我們從list1中選擇4,從list2中選擇7,從list3中選擇5,總和爲4+7+5=16
是否有一種算法可以找到最佳方法進行選擇以獲得最大總和? 解決方案應該是完美的。
也許Knuth的「跳舞鏈接」算法? – comocomocomocomo 2013-03-22 04:48:43
這可能是一個難以解決問題的NP難題。你的解決方案必須是完美的還是隻需要做得好? – Wug 2013-03-22 04:53:48
我們可以假設每一行已經排序? – jamylak 2013-03-22 05:12:56