题目描述:
在二维数组grid中,grid[i][j]代表位于某处的建筑物的高度。 我们被允许增加任何数量(不同建筑物的数量可能不同)的建筑物的高度。 高度 0 也被认为是建筑物。
最后,从新数组的所有四个方向(即顶部,底部,左侧和右侧)观看的“天际线”必须与原始数组的天际线相同。 城市的天际线是从远处观看时,由所有建筑物形成的矩形的外部轮廓。 请看下面的例子。
建筑物高度可以增加的最大总和是多少?
例子:
输入: grid = [[3,0,8,4],[2,4,5,7],[9,2,6,3],[0,3,1,0]]
输出: 35
解释:
The grid is:
[ [3, 0, 8, 4],
[2, 4, 5, 7],
[9, 2, 6, 3],
[0, 3, 1, 0] ]
从数组竖直方向(即顶部,底部)看“天际线”是:[9, 4, 8, 7]
从水平水平方向(即左侧,右侧)看“天际线”是:[8, 7, 9, 3]
在不影响天际线的情况下对建筑物进行增高后,新数组如下:
gridNew = [ [8, 4, 8, 7],
[7, 4, 7, 7],
[9, 4, 8, 7],
[3, 3, 3, 3] ]
说明:
1 < grid.length = grid[0].length <= 50。
grid[i][j] 的高度范围是: [0, 100]。
一座建筑物占据一个grid[i][j]:换言之,它们是 1 x 1 x grid[i][j] 的长方体。

方法1:
主要思路:解题链接汇总
(1)先遍历一遍原数组,找出每行和每列中的最大值;
(2)再遍历一遍原数组,使用当前元素所在位置的行和列中的两个最大值的较小值,减去当前元素,获得结果作为当前元素所在位置可以增长的高度;

class Solution {public:int maxIncreaseKeepingSkyline(vector<vector<int>>& grid) {vector<int> max_row(grid.size(),0);vector<int> max_col(grid[0].size(),0);for(int i=0;i<grid.size();++i){//找出每行和每列中的最大值for(int j=0;j<grid[0].size();++j){max_row[i]=max(max_row[i],grid[i][j]);max_col[j]=max(max_col[j],grid[i][j]);}}int res=0;for(int i=0;i<grid.size();++i){for(int j=0;j<grid[0].size();++j){res+=min(max_row[i],max_col[j])-grid[i][j];//判断当前位置可以增长的高度}}return res;}
};

807 保持城市天际线相关推荐

  1. 807. 保持城市天际线

    链接:807. 保持城市天际线 题解: class Solution { public:int maxIncreaseKeepingSkyline(vector<vector<int> ...

  2. Java实现 LeetCode 807 保持城市天际线 (暴力)

    807. 保持城市天际线 在二维数组grid中,grid[i][j]代表位于某处的建筑物的高度. 我们被允许增加任何数量(不同建筑物的数量可能不同)的建筑物的高度. 高度 0 也被认为是建筑物. 最后 ...

  3. LeetCode 807. 保持城市天际线 / 630. 课程表 III(贪心+优先队列)/ 851. 喧闹和富有(拓扑排序)

    807. 保持城市天际线 2021.12.13 每日一题 题目描述 给你一座由 n x n 个街区组成的城市,每个街区都包含一座立方体建筑.给你一个下标从 0 开始的 n x n 整数矩阵 grid ...

  4. LeetCode:807. 保持城市天际线————中等

    题目 807. 保持城市天际线 在二维数组grid中,grid[i][j]代表位于某处的建筑物的高度. 我们被允许增加任何数量(不同建筑物的数量可能不同)的建筑物的高度. 高度 0 也被认为是建筑物. ...

  5. 天际线java_Java实现 LeetCode 807 保持城市天际线 (暴力)

    807. 保持城市天际线 在二维数组grid中,grid[i][j]代表位于某处的建筑物的高度. 我们被允许增加任何数量(不同建筑物的数量可能不同)的建筑物的高度. 高度 0 也被认为是建筑物. 最后 ...

  6. 807.保持城市天际线

    题目描述 给你一座由 n x n 个街区组成的城市,每个街区都包含一座立方体建筑.给你一个下标从 0 开始的 n x n 整数矩阵 grid ,其中 grid[r][c] 表示坐落于 r 行 c 列的 ...

  7. 【解题报告】Leecode 807. 保持城市天际线——Leecode每日刷题系列

    题目链接:https://leetcode-cn.com/problems/max-increase-to-keep-city-skyline/ 题解汇总:https://leetcode-cn.co ...

  8. LeetCode 807. 保持城市天际线

    文章目录 1. 题目 2. 解题 1. 题目 在二维数组grid中,grid[i][j]代表位于某处的建筑物的高度. 我们被允许增加任何数量(不同建筑物的数量可能不同)的建筑物的高度. 高度 0 也被 ...

  9. 【LeetCode】807. 保持城市天际线

    1.题目描述: 在二维数组grid中,grid[i][j]代表位于某处的建筑物的高度. 我们被允许增加任何数量(不同建筑物的数量可能不同)的建筑物的高度. 高度 0 也被认为是建筑物.最后,从新数组的 ...

  10. 807. 保持城市天际线(JavaScript)

    在二维数组grid中,grid[i][j]代表位于某处的建筑物的高度. 我们被允许增加任何数量(不同建筑物的数量可能不同)的建筑物的高度. 高度 0 也被认为是建筑物. 最后,从新数组的所有四个方向( ...

最新文章

  1. 微信小程序弹出用户授权弹窗,微信小程序引导用户授权,获取位置经纬度
  2. AI时代的高科技读心术:算法解码脑中图像
  3. 当UG的License服务器换了后, 客户端如何调整?
  4. shell-1.shell注释
  5. NOI Day1线上同步赛梦游记
  6. 运维少年系列 python and cisco (1)
  7. PHP对象的内存模型
  8. 2011年9月19日 面试重点:asp.net运行原理和生命周期
  9. apk提取加密素材_从apk包中提取unity资源
  10. Python基础学习六 操作Redis
  11. 华为C8825D刷机失败解决方法
  12. 谷歌、DeepMind提出高效Transformer评估基准
  13. GaussDB(DWS)应用实战:对被视图引用的表进行DDL操作
  14. 基于JAVA+SpringMVC+Mybatis+MYSQL的理发预约系统
  15. python qq聊天机器人_Python QQBot库的QQ聊天机器人
  16. 27.用webpack自搭react和vue框架
  17. 制作多媒体网页html代码,Director制作多媒体网页
  18. 远程计算机ip记录怎么删除吗,远程桌面连接清除登陆过的IP地址
  19. Github上传代码到main分支
  20. 发现自己很失败。。。

热门文章

  1. Gif素材怎样在线下载?用这个gif素材下载工具
  2. 内蒙古计算机四级网络工程师报名时间,2021内蒙古软考报名-信息系统项目管理师报名-系统集成项目管理工程师报名-报名简章-报名通知...
  3. 自动驾驶论文: VH-HFCN based Parking Slot and Lane Markings Segmentation on Panoramic Surround View
  4. 图像识别猫脸的代码及详解
  5. 007.python科学计算库matplotlib(下)
  6. 数控机床进给系统(说明书 CAD图纸 横向装配 纵向装配……)
  7. java 百度地图demo,百度地图api demo 根据地址查询 经纬度
  8. 医药批发公司,连锁药店进销存、财务管理、GSP一体化软件
  9. 有源电力滤波器——低压配电系统
  10. linux上安装php phpredis扩展