簡體   English   中英

具有 integer 值的數組前綴和的最小值

[英]Minimum value of prefix sum of array with integer values

給定一個像 [3,4,6,1,1] 這樣的數組。 以這樣的方式排列它,它的前綴總和為下面給出的表達式提供最小值。 前綴和數組將是 [3,7,13,14,15] 我們必須像 3-7+13-14+15=10 這樣計算它的值,因此以使該值最小化的方式排列原始數組

我會給你一個提示。

假設 output 數組的形式為: [p1, p2, ... pn] 在您的示例中,5 元素 output 數組的格式為: [p1, p2, p3, p4, p5] 那么得到的表達式值為:

+p1
-p1-p2
+p1+p2+p3
-p1-p2-p3-p4
+p1+p2+p3+p4+p5

即: +p1+p3+p5 現在您只需要最小化這個總和,您可以輕松地做到這一點,例如對輸入數組進行排序並選擇 3 個最小的元素並將它們放置在位置135 其余元素和順序無關緊要。

如果輸入數組的長度是偶數,則以類似的方式進行。 例如(長度=4):

+p1
-p1-p2
+p1+p2+p3
-p1-p2-p3-p4

結果: -p2-p4 所以在這里你必須 select 兩個最大的元素並將它們放在位置24

這有意義嗎? 你知道在一般情況下如何編碼嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM