链接:807. 保持城市天际线
题解:
class Solution {
public:
int maxIncreaseKeepingSkyline(vector<vector<int>>& grid) {
if (grid.size() <= 0) {
return 0;
}
vector<int> rows(grid.size(), 0);
vector<int> cols(grid[0].size(), 0);
for (int i = 0; i < grid.size(); ++i) {
for (int j = 0; j < grid[i].size(); ++j) {
rows[i] = max(rows[i], grid[i][j]);
cols[j] = max(cols[j], grid[i][j]);
}
}
int res = 0;
for (int i = 0; i < grid.size(); ++i) {
for (int j = 0; j < grid[i].size(); ++j) {
res += min(rows[i], cols[j]) - grid[i][j];
}
}
return res;
}
};