最大化建筑物高度增量而不改变城市天际线(LeetCode 807)
📌 题目描述
我们有一座由 n x n
个街区组成的城市,每个街区都包含一座立方体形状的建筑。你会得到一个下标从 0
开始的 n x n
的整数矩阵 grid
,其中 grid[r][c]
表示坐落于第 r
行第 c
列的建筑物的高度。
城市的天际线是从远处观察城市时,所有建筑物形成的外部轮廓线。从四个主要方向——北、东、南、西——观察城市时,天际线的形状可能不同。
我们被允许为任意数量的建筑物增加任意的高度,前提是:
- 从任何一个方向观察到的城市天际线不改变。
你的任务是返回 在不改变天际线的前提下,所有建筑物的最大高度增量的总和。
🧠 解题分析
我们可以把这个问题分解为两个部分:
- 确定天际线的约束条件:
-
- 从北方向(上方)看城市,某一列中的最高建筑物决定这列的天际线高度。
- 从西方向(左侧)看城市,某一行中的最高建筑物决定这一行的天际线高度。