leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

2033.cpp (744B)


0 class Solution {
1 public:
2 int minOperations(const vector<vector<int>> &grid, int x) const {
3 static int dp[100001];
4 vector<int> vec;
6 for (const auto &row : grid)
7 vec.insert(end(vec), begin(row), end(row));
8 sort(begin(vec), end(vec));
10 for (int i = 0, acc = 0; i < size(vec) - 1; i++) {
11 const int crnt = vec[i + 1] - vec[i];
12 if (crnt % x) return -1;
13 dp[i + 1] = acc += (i + 1) * crnt;
14 }
16 int res = INT_MAX;
17 for (int i = size(vec) - 1, acc = 0; i > 0; i--) {
18 acc += (size(vec) - i) * (vec[i] - vec[i - 1]);
19 res = min(res, acc + dp[i - 1]);
20 }
22 return res != INT_MAX ? res / x : 0;
23 }
24 };