我遇到以下問題。產品的最大總和
給定N個數字,範圍爲-100..100。
需要重新排列元素以使產品價值達到最大。在此任務產品 之和定義爲A1 * A2 + A2 * A3 ... AN-1 * AN
例如,給定數目10 20 50 40 30
然後,我們可以重新排列它們以下方式: 10,30,50,40,20從左邊開始最大爲10×30 + 30×50 + 50×40 + 40×20 = 4600
這個想法是對序列進行排序,然後將最大數字放在新序列的中間,然後將下一個最大數字放在右邊,然後再放到左邊,依此類推。 但是,關於負數,這是行不通的。
我曾嘗試下面的算法:
1)如何通過上述 4所描述的)從正序找到最小數目如何以上 3)處理負數描述排序的初始序列 2)過程的正數和零個值,它會是左邊或右邊的元素,並且在此數字處理負數序列之前添加。
例如,給定的序列:
1,-2,3,-4,5,-6,7,-8,9,10,11,12,13,14,15,-16
預期的產品的最高金額爲1342
我的算法給出下一重排:
3,7,10,12,14,15,13,11,9,5,1,-4 ,-8,-16,-6,-2
產品總和是1340.
這似乎工作,但它沒有。
您能否提供建議?
顯示您的代碼。 –
你怎麼知道最大值是多少? –