807. 保持城市天际线
package JavaExercise20241004;import java.util.Arrays;public class JavaExercise {public static void main(String[] args) {int[][] array = {{3,0,8,4},{2,4,5,7},{9,2,6,3},{0,3,1,0}};Solution solution = new Solution();System.out.println(solution.maxIncreaseKeepingSkyline(array));}
}class Solution {public int maxIncreaseKeepingSkyline(int[][] grid) {int n = grid.length;int[] rowMax = new int[n];int[] colMax = new int[n];for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {rowMax[i] = Math.max(rowMax[i], grid[i][j]);colMax[j] = Math.max(colMax[j], grid[i][j]);}}int ans = 0;for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {ans += Math.min(rowMax[i], colMax[j]) - grid[i][j];}}return ans;}
}