Class Solution
-
- All Implemented Interfaces:
public final class Solution3218 - Minimum Cost for Cutting Cake I\.
Medium
There is an
m x ncake that needs to be cut into1 x 1pieces.You are given integers
m,n, and two arrays:horizontalCutof sizem - 1, wherehorizontalCut[i]represents the cost to cut along the horizontal linei.verticalCutof sizen - 1, whereverticalCut[j]represents the cost to cut along the vertical linej.
In one operation, you can choose any piece of cake that is not yet a
1 x 1square and perform one of the following cuts:Cut along a horizontal line
iat a cost ofhorizontalCut[i].Cut along a vertical line
jat a cost ofverticalCut[j].
After the cut, the piece of cake is divided into two distinct pieces.
The cost of a cut depends only on the initial cost of the line and does not change.
Return the minimum total cost to cut the entire cake into
1 x 1pieces.Example 1:
Input: m = 3, n = 2, horizontalCut = 1,3, verticalCut = 5
Output: 13
Explanation:
Perform a cut on the vertical line 0 with cost 5, current total cost is 5.
Perform a cut on the horizontal line 0 on
3 x 1subgrid with cost 1.Perform a cut on the horizontal line 0 on
3 x 1subgrid with cost 1.Perform a cut on the horizontal line 1 on
2 x 1subgrid with cost 3.Perform a cut on the horizontal line 1 on
2 x 1subgrid with cost 3.
The total cost is
5 + 1 + 1 + 3 + 3 = 13.Example 2:
Input: m = 2, n = 2, horizontalCut = 7, verticalCut = 4
Output: 15
Explanation:
Perform a cut on the horizontal line 0 with cost 7.
Perform a cut on the vertical line 0 on
1 x 2subgrid with cost 4.Perform a cut on the vertical line 0 on
1 x 2subgrid with cost 4.
The total cost is
7 + 4 + 4 = 15.Constraints:
1 <= m, n <= 20horizontalCut.length == m - 1verticalCut.length == n - 1<code>1 <= horizontalCuti, verticalCuti<= 10<sup>3</sup></code>
-
-
Constructor Summary
Constructors Constructor Description Solution()
-