当前位置: 首页 > news >正文

山东省建设建设协会网站网络媒体发稿平台

山东省建设建设协会网站,网络媒体发稿平台,oa办公系统网站开发,外贸网站建设课本文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 矩阵 二【题目难度】 中等 三【题目编号】 1572.矩阵对角线元素的和 四【题目描述】 给你一…

文章目录

  • 一【题目类别】
  • 二【题目难度】
  • 三【题目编号】
  • 四【题目描述】
  • 五【题目示例】
  • 六【题目提示】
  • 七【解题思路】
  • 八【时间频度】
  • 九【代码实现】
  • 十【提交结果】

一【题目类别】

  • 矩阵

二【题目难度】

  • 中等

三【题目编号】

  • 1572.矩阵对角线元素的和

四【题目描述】

  • 给你一座由 n x n 个街区组成的城市,每个街区都包含一座立方体建筑。给你一个下标从 0 开始的 n x n 整数矩阵 grid ,其中 grid[r][c] 表示坐落于 r 行 c 列的建筑物的 高度 。
  • 城市的 天际线 是从远处观察城市时,所有建筑物形成的外部轮廓。从东、南、西、北四个主要方向观测到的 天际线 可能不同。
  • 我们被允许为 任意数量的建筑物 的高度增加 任意增量(不同建筑物的增量可能不同) 。 高度为 0 的建筑物的高度也可以增加。然而,增加的建筑物高度 不能影响 从任何主要方向观察城市得到的 天际线 。
  • 在 不改变 从任何主要方向观测到的城市 天际线 的前提下,返回建筑物可以增加的 最大高度增量总和 。

五【题目示例】

  • 示例 1:

    • 在这里插入图片描述
    • 输入:grid = [[3,0,8,4],[2,4,5,7],[9,2,6,3],[0,3,1,0]]
    • 输出:35
    • 解释:建筑物的高度如上图中心所示。用红色绘制从不同方向观看得到的天际线。在不影响天际线的情况下,增加建筑物的高度:gridNew = [ [8, 4, 8, 7],
                                           [7, 4, 7, 7],
                                           [9, 4, 8, 7],
                                           [3, 3, 3, 3] ]
  • 示例 2:

    • 输入:grid = [[0,0,0],[0,0,0],[0,0,0]]
    • 输出:0
    • 解释:增加任何建筑物的高度都会导致天际线的变化。

六【题目提示】

  • n = = g r i d . l e n g t h n == grid.length n==grid.length
  • n = = g r i d [ r ] . l e n g t h n == grid[r].length n==grid[r].length
  • 2 < = n < = 50 2 <= n <= 50 2<=n<=50
  • 0 < = g r i d [ r ] [ c ] < = 100 0 <= grid[r][c] <= 100 0<=grid[r][c]<=100

七【解题思路】

  • 这道题主要是要理解题意,这道题的意思是找出每一行和每一列的最大值,然后看每一个元素增加多少高度不会超过当前这个元素所处行和列最大值中的最小值,这样就不会破坏每个方向观测到的“天际线”
  • 所以我们就遍历整个二维数组,找到每一行和每一列的最大值
  • 然后计算当前元素增加多少高度不会超过当前这个元素所处行和列最大值中的最小值
  • 对二维矩阵中的每个元素都进行上面的操作,然后求和
  • 最后返回结果即可

八【时间频度】

  • 时间复杂度: O ( n 2 ) O(n^2) O(n2) n n n为传入的正方形数组的长度
  • 空间复杂度: O ( n ) O(n) O(n) n n n为传入的正方形数组的长度

九【代码实现】

  1. Java语言版
class Solution {public int maxIncreaseKeepingSkyline(int[][] grid) {int n = grid.length;int res = 0;int[] rawMax = new int[n];int[] colMax = new int[n];for(int i = 0;i < n;i++){for(int j = 0;j < n;j++){rawMax[i] = Math.max(rawMax[i],grid[i][j]);colMax[j] = Math.max(colMax[j],grid[i][j]);}}for(int i = 0;i < n;i++){for(int j = 0;j < n;j++){res += Math.min((rawMax[i] - grid[i][j]),(colMax[j] - grid[i][j]));}}return res;}
}
  1. C语言版
int maxIncreaseKeepingSkyline(int** grid, int gridSize, int* gridColSize)
{int n = gridSize;int res = 0;int* rawMax = (int*)calloc(n, sizeof(int));int* colMax = (int*)calloc(n, sizeof(int));for(int i = 0;i < n;i++){for(int j = 0;j < n;j++){rawMax[i] = fmax(rawMax[i], grid[i][j]);colMax[j] = fmax(colMax[j], grid[i][j]);}}for(int i = 0;i < n;i++){for(int j = 0;j < n;j++){res += fmin(rawMax[i] - grid[i][j], colMax[j] - grid[i][j]);}}return res;
}
  1. Python语言版
class Solution:def maxIncreaseKeepingSkyline(self, grid: List[List[int]]) -> int:n = len(grid)res = 0rawMax = [0] * ncolMax = [0] * nfor i in range(0, n):for j in range(0, n):rawMax[i] = max(rawMax[i],grid[i][j])colMax[j] = max(colMax[j],grid[i][j])for i in range(0, n):for j in range(0, n):res += min(rawMax[i] - grid[i][j], colMax[j] - grid[i][j])return res
  1. C++语言版
class Solution {
public:int maxIncreaseKeepingSkyline(vector<vector<int>>& grid) {int n = grid.size();int res = 0;vector<int> rawMax(n);vector<int> colMax(n);for(int i = 0;i < n;i++){for(int j = 0;j < n;j++){rawMax[i] = fmax(rawMax[i],grid[i][j]);colMax[j] = fmax(colMax[j],grid[i][j]);}}for(int i = 0;i < n;i++){for(int j = 0;j < n;j++){res += fmin(rawMax[i] - grid[i][j],colMax[j] - grid[i][j]);}}return res;}
};

十【提交结果】

  1. Java语言版
    在这里插入图片描述

  2. C语言版
    在这里插入图片描述

  3. Python语言版
    在这里插入图片描述

  4. C++语言版
    在这里插入图片描述

http://www.yayakq.cn/news/136965/

相关文章:

  • 电商app软件广州网站营销优化qq
  • 江门北京网站建设荣胜网络 宁波网站建设
  • 南宁企业网站制作模板好用的微信公众号编辑器
  • 松岗怎么做企业网站设计外贸网站在哪做外链
  • 自己做网站系统首选平台北京网站建设策划建设公司
  • 微网站搭建网站图片切换代码
  • 织梦做的网站打包在dw修改图片在线生成网址
  • 网站功能价格表官网铺设
  • 提升网站浏览量wordpress 首页的代码
  • 网站建设制作专业开发定制前端网页设计流程
  • 湛江市研发网站建设百度小程序代理
  • 安徽合肥中国建设银行网站首页濮阳做网站的电话
  • 东莞网站建设模板设计锦州市城市建设服务中心网站
  • wordpress建站解析浦口区网站建设质量推荐
  • 网站备案的是空间还是域名网站 公众号 建设方案
  • 网站优化要多少钱wordpress 主题页脚
  • 秦皇岛市海港区建设局网站c网站开发教程
  • 东莞高端网站设计旅游企业公司网站建设
  • 站长之家 wordpress网站开发招标技术规范书
  • 产品设计作品网站上海十大装修公司口碑排名
  • 重庆购物网站建设网站栏目推介怎么做
  • 如何百度收录自己的网站wordpress免签插件
  • 电商网站开发分销商wordpress运行机制
  • 天津网站建设公司seoheuni
  • 莱芜警方网站官网dw手机网站建设
  • 阿里巴巴官网网站开发一个app成本
  • 建设厅网站账号密码忘记怎么办wordpress 504错误
  • 网站 目标电脑平面设计软件
  • 卡盟网站制作教程网站设计做哪些的
  • 个人做网站名称可以随意更改吗设计本和游戏本区别