class Solution {
public:
int maxIncreaseKeepingSkyline(vector<vector<int>>& grid) {
//找出每一行的最大值
const int N = ;
int ROW_HEIGHT[N];
int COL_HEIGHT[N];
int MIX_HEIGHT[N][N];
for (int i = ; i < grid.size(); i++)
{
int max_height = INT_MIN;
for (int j = ; j < grid[].size(); j++)
{
max_height = max(max_height, grid[i][j]);
}
ROW_HEIGHT[i] = max_height;
} //找出每一列的最大值
for (int j = ; j < grid[].size(); j++)
{
int max_height = INT_MIN;
for (int i = ; i < grid.size(); i++)
{
max_height = max(max_height, grid[i][j]);
}
COL_HEIGHT[j] = max_height;
}
//每一个值,不能超过 min(所在行的最大值,所在列的最大值)
int sum = ;
for (int i = ; i < grid.size(); i++)
{
for (int j = ; j < grid[].size(); j++)
{
sum += min(ROW_HEIGHT[i], COL_HEIGHT[j]) - grid[i][j];
}
}
return sum;
}
};