2022-03-27 20:46:41 +08:00
< p > There are < code > n< / code > piles of < code > stones< / code > arranged in a row. The < code > i< sup > th< / sup > < / code > pile has < code > stones[i]< / code > stones.< / p >
2023-12-09 18:42:21 +08:00
< p > A move consists of merging exactly < code > k< / code > < strong > consecutive< / strong > piles into one pile, and the cost of this move is equal to the total number of stones in these < code > k< / code > piles.< / p >
2022-03-27 20:46:41 +08:00
< p > Return < em > the minimum cost to merge all piles of stones into one pile< / em > . If it is impossible, return < code > -1< / code > .< / p >
< p > < / p >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 1:< / strong > < / p >
2022-03-27 20:46:41 +08:00
< pre >
< strong > Input:< / strong > stones = [3,2,4,1], k = 2
< strong > Output:< / strong > 20
< strong > Explanation:< / strong > We start with [3, 2, 4, 1].
We merge [3, 2] for a cost of 5, and we are left with [5, 4, 1].
We merge [4, 1] for a cost of 5, and we are left with [5, 5].
We merge [5, 5] for a cost of 10, and we are left with [10].
The total cost was 20, and this is the minimum possible.
< / pre >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 2:< / strong > < / p >
2022-03-27 20:46:41 +08:00
< pre >
< strong > Input:< / strong > stones = [3,2,4,1], k = 3
< strong > Output:< / strong > -1
< strong > Explanation:< / strong > After any merge operation, there are 2 piles left, and we can' t merge anymore. So the task is impossible.
< / pre >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 3:< / strong > < / p >
2022-03-27 20:46:41 +08:00
< pre >
< strong > Input:< / strong > stones = [3,5,1,2,6], k = 3
< strong > Output:< / strong > 25
< strong > Explanation:< / strong > We start with [3, 5, 1, 2, 6].
We merge [5, 1, 2] for a cost of 8, and we are left with [3, 8, 6].
We merge [3, 8, 6] for a cost of 17, and we are left with [17].
The total cost was 25, and this is the minimum possible.
< / pre >
< p > < / p >
< p > < strong > Constraints:< / strong > < / p >
< ul >
< li > < code > n == stones.length< / code > < / li >
< li > < code > 1 < = n < = 30< / code > < / li >
< li > < code > 1 < = stones[i] < = 100< / code > < / li >
< li > < code > 2 < = k < = 30< / code > < / li >
< / ul >