#leetcode1000. 合并石头的最低成本
合并石头的最低成本
有 n 堆石头排成一排,第 i 堆中有 stones[i] 块石头。
每次操作必须选择连续的恰好 K 堆石头,把它们合并成一堆。此次操作的成本等于这 K 堆石头的总数。
请返回把所有石头最终合并成一堆所需的最低总成本。
如果无法最终合并成一堆,返回 -1。
提交形式
本题采用 LeetCode 风格提交。
只需要提交:
class Solution {
public:
int mergeStones(vector<int>& stones, int K) {
// your code
}
};
不需要编写 main()。
数据范围
1 <= stones.length <= 301 <= stones[i] <= 1002 <= K <= 30
样例 1
输入:
stones = [3,2,4,1], K = 2
输出:
20
样例 2
输入:
stones = [3,2,4,1], K = 3
输出:
-1
样例 3
输入:
stones = [3,5,1,2,6], K = 3
输出:
25