来源:小编 更新:2024-09-14 09:47:22
用手机看
给定一个 x 的矩阵 grid,矩阵中的元素表示建筑物的高度。城市的天际线是指从远处观察城市时,所有建筑物形成的外部轮廓。从东、南、西、北四个主要方向观测到的天际线可能不同。
我们被允许为任意数量的建筑物的高度增加任意增量(不同建筑物的增量可能不同)。高度为 0 的建筑物的高度也可以增加。增加的建筑物高度不能影响从任何主要方向观察城市得到的天际线。
在不改变从任何主要方向观测到的城市天际线的前提下,返回建筑物可以增加的最大高度增量总和。
输入:grid = [[3,0,8,4],[2,4,5,7],[9,2,6,3],[0,3,1,0]]
输出:35
解释:建筑物的高度如上图中心所示。用红色绘制从不同方向观看得到的天际线。
输入:grid = [[0,0,0],[0,0,0],[0,0,0]]
输出:0
解释:由于所有建筑物的高度都是 0,增加任何建筑物的高度都会改变天际线,因此输出结果为 0。
```pyho
def maxIcreaseKeepigSkylie(grid):
= le(grid)
skylie = [max(row) for row i grid] + [max(col) for col i zip(grid)] + [skylie[0], skylie]
max_icrease = 0
for i i rage():
for j i rage():
max_icrease += mi(skylie[i + ], skylie[j + 2 ]) - grid[i][j]
reur max_icrease
测试示例
grid = [[3,0,8,4],[2,4,5,7],[9,2,6,3],[0,3,1,0]]
pri(maxIcreaseKeepigSkylie(grid)) 输出:35
这个代码首先计算了天际线,然后遍历每个建筑物,计算最大增量,并最终返回总增量。