Из http://www.geeksforgeeks.org/amazon-interview-set-89/
У нас есть n золотых монет. Нам нужно объединить все n монет для создания одной единственной монеты, мы можем объединить две монеты сразу. Стоимость слияния две монеты равны стоимости этих монет. Как мы гарантируем, что стоимость слияния n монет в минимальном размере.
Ex: 5 ,8 , 4, 3, 9, 6 We will merge 3 and 4, cost=7 {Remaining coins: 5,8,9, 6,7} Then we merge 5 and 6, cost=11 { Remaining coins: 11,8,9,7} Then we merge 7 and 8, cost=15 { Remaining coins: 11,15,9} Then we merge 9 and 11, cost=20 { Remaining coins: 20,15} Then we merge 20 and 15, cost=35 { Remaining coins: 35} Total cost: 7+11+15+20+35 = 88
Если бы мы объединили массив монет {5, 8, 4, 3, 9, 6} в разных мода:
Merging 5 and 8, cost=13 {Remaining coins: 13, 4, 3, 9, 6} Merging 13 and 4, cost=17 {Remaining coins: 17, 3, 9, 6} Merging 17 and 3, cost=20 {Remaining coins: 20, 9, 6} Merging 20 and 9, cost=29 {Remaining coins: 29, 6} Merging 29 and 6, cost=35 {Remaining coins: 35} Total cost: 114
Как мы видим, стоимость в первом случае меньше. как получить минимальная стоимость слияния всех n монет;
это всего лишь пример, количество монет может быть в диапазоне 10 ^ 9