首页 > 其他分享 >807. 保持城市天际线

807. 保持城市天际线

时间:2024-07-14 23:30:14浏览次数:13  
标签:天际线 int 城市 vector grid 建筑物 807 最大值

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

城市的 天际线 是从远处观察城市时,所有建筑物形成的外部轮廓。从东、南、西、北四个主要方向观测到的 天际线 可能不同。

我们被允许为 任意数量的建筑物 的高度增加 任意增量(不同建筑物的增量可能不同) 。 高度为 0 的建筑物的高度也可以增加。然而,增加的建筑物高度 不能影响 从任何主要方向观察城市得到的 天际线 。

在 不改变 从任何主要方向观测到的城市 天际线 的前提下,返回建筑物可以增加的 最大高度增量总和 。

 

思路:从上和从下看是一样的,同理从左和从右看也是一样的,也就是说每一个建筑物只要增加到这行最大值和这列最大值中小的那个就可以,实现思路是通过一次循环,一个vector来存储每一行和每一列的最大值,然后在循环一次,根据vector存储的每行最大和每列最小比较得到增长到的最大值减去当前值即为增加值,循环即可得到答案。

class Solution {
public:
    int maxIncreaseKeepingSkyline(vector<vector<int>>& grid) {
        int m=grid.size();
        int n=grid[0].size();
        vector<int> max_col(n);
        vector<int> max_row(m);
        for(int i =0;i<m;i++)
        {
            for(int j=0;j<n;j++)
            {
                max_col[j]=max(max_col[j],grid[i][j]);
                max_row[i]=max(max_row[i],grid[i][j]);                
            }
        }
        int res=0;
        for(int i =0;i<m;i++)
        {
            for(int j=0;j<n;j++)
            {
                res=res+min(max_col[j],max_row[i])-grid[i][j];             
            }
        }
        return res;
    }
};

 

标签:天际线,int,城市,vector,grid,建筑物,807,最大值
From: https://www.cnblogs.com/mysteryily/p/18302207

相关文章

  • three.js+vue污水处理厂数字孪生平台智慧城市web3d
    案例效果截图如下: 主场景三维逻辑代码如下:<template><divclass="whole"><!--threejs画布--><divid="threejs"ref="threejs"></div><!--污水厂模型加载进度条--><a-progress:stroke-colo......
  • 洛谷 P2478 [SDOI2010] 城市规划 题解
    题意简述仙人掌上求至少间隔两个位置的最大独立集。(仙人掌指,没有一条边在两个或以上的环里的无向图。)题目分析仙人掌就是树套环,即树上每个结点都是一个结点或环。那么将题目拆解成树上DP和环上DP即可。用tarjan缩点即可。树上DP先来看看树上DP。显然每个点有三个状......
  • 新中地三维GIS开发智慧城市效果和应用场景
    近年来,随着科技的发展和城市化进程的加速,智慧城市成为了全球各大城市的一个重要发展方向。在这一背景下,三维GIS技术以其独特的优势,成为构建智慧城市不可或缺的工具。新中地GIS开发特训营正是在这样的大环境下应运而生,旨在培养一批能够运用三维GIS技术,打造出逼真智慧城市场景的......
  • 从山川湖海到城市建筑,Cesium带你遍览!
    Cesium与山海鲸CesiumCesium是一个能够让我们以全新的视角探索地球、分析数据的强大平台,无论是山川湖海、城市建筑,还是气候变化、自然灾害,Cesium都能以三维模型的形式生动呈现在我们的面前。 山海鲸Cesium——山海鲸可视化软件与CesiumJS的结合体,适用于各种需要三维GIS渲染和......
  • 城市间货物运输Ⅰ-卡玛(Bellman_ford)
    题目链接:城市间货物运输Ⅰ本篇学习了代码随想录Bellman_ford算法精讲,本题是经典的带负权值的单源最短路问题,Dijkstra求单源最短路问题的前提是图中的边无负权重。当图中的边存在负权重时,就需要使用Bellman_ford算法来进行求解了。Bellman_ford算法的核心思想是对......
  • 智慧城市可视化页面怎么做?
    智慧城市是一个综合性的概念,广泛应用于各个领域,如基础设施建设、信息化应用、产业经济发展、市民生活品质等。可视化页面的制作也是一个综合性的过程,需要确定展示内容、数据收集与处理、设计可视化元素等多个环节紧密配合。 1. 明确展示内容首先,在制作可视化页面之前,需要明......
  • 基于Matlab模拟城市环境中非地面网络(卫星/无人机)无线电信道
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • 【论文笔记】UniST:通用预训练城市时空预测模型
    目录写在前面1.通用时空模型的挑战与能力特性2.构建通用时空模型UniST2.1大规模时空预训练2.2时空知识规则引导提示学习3.UniST的实验与分析3.1模型预测效果3.2其他实验分析写在前面文章标题:UniST:APrompt-EmpoweredUniversalModelforUrbanSpatio-Te......
  • 基于微信小程序的城市周边乡村旅游自驾游平台-UniApp(代码+文档+运行成功)
    随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受游客的喜爱,南宁周边乡村游被游客普遍使用,为方便游客能够可以随时进行南宁周边乡村游的数据信息管理,特开发了基于南宁周边乡村游的......
  • 基于Dijkstra算法的最优行驶路线搜索matlab仿真,以实际城市复杂路线为例进行测试
    1.程序功能描述     基于Dijkstra算法的最优行驶路线搜索matlab仿真,在一个实际城市路线图中,用鼠标点击起点和终点,通过算法完成路线搜索和规划。最后输出规划路线的长度。 2.测试软件版本以及运行结果展示MATLAB2022a版本运行        通过测试可以看出,Di......