leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
1547.cpp (566B)
0 class Solution {
1 int dp[102][102] = {};
3 int dfs(const vector<int> &cuts, int i, int j) {
4 if (j - i <= 1) return 0;
5 if (dp[i][j]) return dp[i][j];
6 dp[i][j] = INT_MAX;
7 for (auto k = i + 1; k < j; ++k)
8 dp[i][j] = min(dp[i][j], cuts[j] - cuts[i] + dfs(cuts, i, k) + dfs(cuts, k, j));
9 return dp[i][j];
10 }
12 public:
13 int minCost(int n, vector<int> &cuts) {
14 cuts.push_back(0);
15 cuts.push_back(n);
16 sort(begin(cuts), end(cuts));
17 return dfs(cuts, 0, cuts.size() - 1);
18 }
19 };