LeetCode 807. 保持城市天际线

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

在二维数组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] 的长方体。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/max-increase-to-keep-city-skyline
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

在这里插入图片描述

class Solution {
public:int maxIncreaseKeepingSkyline(vector<vector<int>>& grid) {if(grid.empty())return 0;int sum1 = 0, sum2 = 0, i, j, maxh;int v[grid.size()], h[grid[0].size()];//两方向的最大高度for(i = 0; i < grid.size(); ++i){maxh = -1;for(j = 0; j < grid.size(); ++j){sum1 += grid[i][j];if(grid[i][j] > maxh)maxh = grid[i][j];}v[i] = maxh;}for(j = 0; j < grid.size(); ++j){maxh = -1;for(i = 0; i < grid.size(); ++i){if(grid[i][j] > maxh)maxh = grid[i][j];}h[j] = maxh;}for(i = 0; i < grid.size(); ++i){for(j = 0; j < grid.size(); ++j){grid[i][j] = min(v[i],h[j]);//取两个方向的较小的为上限sum2 += grid[i][j];}}return sum2-sum1;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习数据集汇总(附下载地址)

大学公开数据集(Stanford)69G大规模无人机(校园)图像数据集【Stanford】http://cvgl.stanford.edu/projects/uav_data/人脸素描数据集【CUHK】http://mmlab.ie.cuhk.edu.hk/archive/facesketch.html自然语言推理(文本蕴含标记)数据集【NYU】https://www.nyu.edu/projects/bowma…

提供一个Android原生的Progress——SwipeToRefreshLayout下拉刷新时的等待动画

先来上个图看看效果&#xff1a; 这里我为什么要单独把这个拿出来呢&#xff0c;因为最近才开始接触Android最新的东西&#xff0c;也就是5.0以上的东西&#xff0c;发现Android提供的SwipeToRefreshLayout是没有上拉加载更多的&#xff0c;在网上找了不少第三方提供加载更多的…

tensorflow2.0 Dataset创建和使用

一、创建Dataset # 可以接收一个numpy.ndarray、tuple、dict dataset tf.data.Dataset.from_tensor_slices(np.arange(10).reshape((5,2))) dataset tf.data.Dataset.from_tensor_slices(([1,2,3,4,5,6],[10,20,30,40,50,60])) dataset tf.data.Dataset.from_tensor_slices…

导师实验室对学生影响有多大?

读博士导师非常重要&#xff0c;比你们想象得还要更重要。一个优秀的导师不仅在科研帮上很多忙&#xff0c;而且让你懂得怎么做科研&#xff0c;更重要的他教会你怎么做一个合格的学者。 跟这种导师工作&#xff0c;你会发现科研其实是一件非常有趣的事情&#xff0c;它带来的乐…

论文浅尝 | 使用孪生BERT网络生成句子的嵌入表示

论文笔记整理&#xff1a;吴杨&#xff0c;浙江大学计算机学院&#xff0c;知识图谱、NLP方向。https://www.ctolib.com/https://arxiv.org/abs/1908.10084动机谷歌的 BERT 预训练模型&#xff0c;已经能够在两个句子的语义相似度匹配等需要输入一对句子的任务上取得了非常好的…

美团点评效果广告实验配置平台的设计与实现

一. 背景 效果广告的主要特点之一是可量化&#xff0c;即广告系统的所有业务指标都是可以计算并通过数字进行展示的。因此&#xff0c;可以通过业务指标来表示广告系统的迭代效果。那如何在全量上线前确认迭代的结果呢&#xff1f;通用的方法是采用AB实验&#xff08;如图1&…

LeetCode 832. 翻转图像(异或^)

文章目录1. 题目2. 解题1. 题目 给定一个二进制矩阵 A&#xff0c;我们想先水平翻转图像&#xff0c;然后反转图像并返回结果。 水平翻转图片就是将图片的每一行都进行翻转&#xff0c;即逆序。例如&#xff0c;水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。 反转图片的意思是图…

MVP模式在Android中的应用之图片展示选择功能的框架设计

前言&#xff1a;虽然安卓出现的时间比其它平台软件比较晚&#xff0c;但是在我们的安卓开发中&#xff0c;一样可以使用我们所熟知的设计模式来给它一个合理、完善的结构&#xff0c;这样&#xff0c;才可以使我们在平常开发的时候减少冗余代码的发生&#xff0c;真正的提高效…

2020年8个效率最高的爬虫框架

一些较为高效的Python爬虫框架。分享给大家。 1.Scrapy Scrapy是一个为了爬取网站数据&#xff0c;提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘&#xff0c;信息处理或存储历史数据等一系列的程序中。。用这个框架可以轻松爬下来如亚马逊商品信息之类的数据。 …

抑制过拟合之正则化与Dropout

避免过拟合&#xff1a; 1、增大数据集合 – 使用更多的数据&#xff0c;噪声点比减少&#xff08;减少数据扰动所造成的影响&#xff09; 2、减少数据特征 – 减少数据维度&#xff0c;高维空间密度小&#xff08;减少模型复杂度&#xff09; 3、正则化 / dropout / 数据增强…

谈谈神经网络的大规模训练优化

文 | 立交桥跳水冠军源 | 知乎大规模神经网络训练一般会涉及到几百个分布式节点同时工作&#xff0c;模型的参数量以及运算量往往很大&#xff0c;作者认为在这个task下当前的工作主要归结为以下三种&#xff1a;对通信本身的优化&#xff0c;神经网络训练通信的优化&#xff0…

LeetCode 1108. IP 地址无效化

文章目录1. 题目2. 解题1. 题目 给你一个有效的 IPv4 地址 address&#xff0c;返回这个 IP 地址的无效化版本。 所谓无效化 IP 地址&#xff0c;其实就是用 “[.]” 代替了每个 “.”。 示例 1&#xff1a;输入&#xff1a;address "1.1.1.1" 输出&#xff1a;&…

Android NDK开发入门学习笔记(图文教程,极其详尽)

以前也简单用过JNI&#xff0c;但是只是简单用一下&#xff0c;好多都不明白。最近在看源码部分&#xff0c;有涉及到JNI调用的&#xff0c;所以这次打算彻底把它搞定。 先普及一下JNI的调用关系&#xff1a;JAVA------------------------>JNI----------------------------…

论文浅尝 | 利用问题生成提升知识图谱问答

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士生&#xff0c;研究方向为知识库问答。来源&#xff1a;NLPCC2019链接&#xff1a;http://tcci.ccf.org.cn/conference/2019/papers/183.pdf本文提出了一种利用问题生成提升知识图谱问答模型性能的方法&#xff08;一个…

顶会论文:基于神经网络StarNet的行人轨迹交互预测算法

1.背景 民以食为天&#xff0c;如何提升超大规模配送网络的整体配送效率&#xff0c;改善数亿消费者在”吃“方面的体验&#xff0c;是一项极具挑战的技术难题。面向未来&#xff0c;美团正在积极研发无人配送机器人&#xff0c;建立无人配送开放平台&#xff0c;与产学研各方共…

python操作mysql数据库实现增删改查

python操作mysql数据库实现增删改查 Python 标准数据库接口为 Python DB-API&#xff0c;Python DB-API为开发人员提供了数据库应用编程接口。 Python 数据库接口支持非常多的数据库&#xff0c;你可以选择适合你项目的数据库&#xff1a; GadFlymSQLMySQLPostgreSQLMicrosoft …

tf2: Gradients do not exist for variables when minimizing the loss.

WARNING:tensorflow:Gradients do not exist for variables when minimizing the loss. 情况一 该变量没有参与最后loss的计算 &#xff08;1&#xff09;如果直接没有参与计算&#xff0c;其实很好就能找出来&#xff0c;删掉无用变量即可&#xff1b; &#xff08;2&#xff…

LeetCode 654. 最大二叉树(递归)

文章目录1. 题目2. 解题1. 题目 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下&#xff1a; 二叉树的根是数组中的最大元素。 左子树是通过数组中最大值左边部分构造出的最大二叉树。 右子树是通过数组中最大值右边部分构造出的最大二叉树。 通过给…

Probe:Android线上OOM问题定位组件

配送骑手端App是骑手用于完成配送履约的应用&#xff0c;帮助骑手完成接单、到店、取货及送达&#xff0c;提供各种不同的运力服务&#xff0c;也是整个外卖闭环中的重要节点。由于配送业务的特性&#xff0c;骑手App对于应用稳定性的要求非常高&#xff0c;体现App稳定性的一个…

Android中使用官方提供好的功能使用说明(比如系统图库获取),也作为延生学习的学习文档

这篇文章最核心的就是去学习如何学习Android&#xff0c;如何去使用Android文档。 我们一般在刚开始接触开发的时候&#xff0c;如果遇到无法解决的问题&#xff0c;常常会百度&#xff0c;或者google去寻找答案&#xff0c;比如有个需求是获取系统中的图片&#xff0c;你可能…