Skip to content

Commit 21f45d2

Browse files
authored
Update minimum-cost-for-cutting-cake-ii.cpp
1 parent 5ffbb6c commit 21f45d2

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

C++/minimum-cost-for-cutting-cake-ii.cpp

+20
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,23 @@ class Solution {
2020
return result;
2121
}
2222
};
23+
24+
// Time: O(mlogm + nlogn)
25+
// Space: O(1)
26+
// sort, greedy
27+
class Solution2 {
28+
public:
29+
long long minimumCost(int m, int n, vector<int>& horizontalCut, vector<int>& verticalCut) {
30+
sort(begin(horizontalCut), end(horizontalCut), greater<int>());
31+
sort(begin(verticalCut), end(verticalCut), greater<int>());
32+
int64_t result = 0;
33+
for (int i = 0, j = 0; i < size(horizontalCut) || j < size(verticalCut); ) {
34+
if (j == size(verticalCut) || (i < size(horizontalCut) && horizontalCut[i] > verticalCut[j])) {
35+
result += horizontalCut[i++] * (j + 1);
36+
} else {
37+
result += verticalCut[j++] * (i + 1);
38+
}
39+
}
40+
return result;
41+
}
42+
};

0 commit comments

Comments
 (0)