class Solution {
public int maxIncreaseKeepingSkyline(int[][] grid) {
int n = grid.length;
int[] rowMax = new int[n];// 用这种方式创建的数组,所有元素默认为 0
int[] colMax = new int[n];// 用这种方式创建的数组,所有元素默认为 0
for(int i = 0;i < n;i++){
for(int j = 0;j < n;j++){
// 将这一行数据,进行比较,最终的结果就是 这一行的最大值
// 将每一行的最大值,存入我们 rowMax 数组
rowMax[i] = Math.max(rowMax[i],grid[i][j]);
// 将每一列的数据,与 colMax 当中 元素进行比较,将最大值存入 colMax 当中
colMax[j] = Math.max(colMax[j],grid[i][j]);
}
}
// 题目 要求是 统计,所以每个都是遍历
int count =0;// 用来记录 总加盖层数
for(int i = 0;i < n;i++){
for(int j = 0;j < n;j++){
count += Math.min(colMax[j],rowMax[i]) - grid[i][j];
}
}
return count;
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/DarkAndGrey/article/details/121909464
内容来源于网络,如有侵权,请联系作者删除!