給出n個數,現在要將這n個數合併成乙個數,每次只能選擇兩個數a,b合併,每次合併需要消耗a+b的能量,輸出將這n個數合併成乙個數後消耗的最小能量。
樣例
樣例 1
: 輸入:[1
,2,3
,4] 輸出:19
解釋:合併1和2,代價為3
, 合併後為 [3,
4,3]
. 合併3,3
, 代價是6
, 合併後為 [6,
4]. 合併最後兩個,代價為10, 總最小代價為19
樣例 2
: 輸入:[2
,8,4
,1] 輸出:25
解釋:合併1和2,代價為3
, 合併後為 [3,
4,8]
. 合併3,4
, 代價是7
, 合併後為 [7,
8]. 合併最後兩個,代價為15, 總最小代價為25
注意事項
2<= n <=
50000,合併後的數字不會超過int範圍
class
solution
int res=0;
int sum=0;
while
(!q.
empty()
&&q.
size()
>=2)
return res;}}
;
LintCode 合併區間
題目描述 給出若干閉合區間,合併所有重疊的部分。樣例 給出的區間列表 合併後的區間列表 1,3 1,6 2,6 8,10 8,10 15,18 15,18 做題思路 先用bool函式規定一種排序演算法,每個陣列的第乙個數字比較,按照公升序的方法排列。運用sort函式將intervals的陣列按照規定...
合併區間 LintCode
描述 給出若干閉合區間,合併所有重疊的部分。樣例 給出的區間列表 合併後的區間列表 1,3 1,6 2,6 8,10 8,10 15,18 15,18 思路 首先先寫乙個比較規則comp,然後用sort 將intervals按其start從小到大排序,這樣可以避免合併區間時的許多問題。然後再建立乙個...
相同數字 LintCode
給乙個陣列,如果陣列中存在相同數字,且相同數字的距離小於給定值k,輸出yes,否則輸出no。注意事項 輸入的陣列長度為n,保證n 100000。陣列元素的值為x,0 x 1e9。輸入的k滿足 1 k n。樣例 給出 array 1,2,3,1,5,9,3 k 4,返回 yes 解釋 index為3的...