#leetcode1000. 合并石头的最低成本

    ID: 3037 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 4 上传者: 标签>语言入门数组线性数据结构前缀和动态规划

合并石头的最低成本

有 n 堆石头排成一排,第 i 堆中有 stones[i] 块石头。

每次操作必须选择连续的恰好 K 堆石头,把它们合并成一堆。此次操作的成本等于这 K 堆石头的总数。

请返回把所有石头最终合并成一堆所需的最低总成本。

如果无法最终合并成一堆,返回 -1。

提交形式

本题采用 LeetCode 风格提交。

只需要提交:

class Solution {
public:
    int mergeStones(vector<int>& stones, int K) {
        // your code
    }
};

不需要编写 main()。

数据范围

  • 1 <= stones.length <= 30
  • 1 <= stones[i] <= 100
  • 2 <= 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