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

营销型网站建设xywlcn国内永久免费的云服务器

营销型网站建设xywlcn,国内永久免费的云服务器,网站域名到期叫,长治建设网站公司来源:力扣(LeetCode) 描述: 给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。如果不存在,则返回 0。 示例 1&#…

来源:力扣(LeetCode)

描述:

给你一个由若干 01 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。如果不存在,则返回 0

示例 1:

输入:grid = [[1,1,1],[1,0,1],[1,1,1]]
输出:9

示例 2:

输入:grid = [[1,1,0,0]]
输出:1

提示:

  • 1 <= grid.length <= 100
  • 1 <= grid[0].length <= 100
  • grid[i][j] 为 0 或 1

方法:动态规划

思路与算法

我们假设以 (x, y) 为右下方顶点的最大的正方形边长为 l,此时正方形的四个顶点分别为 (x − l + 1, y − l + 1), (x, y − l + 1), (x − l + 1, y), (x, y),此时需要保证正方形的四条边上的数字均为 1。我们设 left[x][y] 表示以 (x, y) 为起点左侧连续 1 的最大数目,right[x][y] 表示以 (x, y) 为起点右侧连续 1 的最大数目,up[x][y] 表示从 (x, y) 为起点上方连续 1 的最大数目,down[x][y] 表示以 (x, y) 为起点下方连续 1 的最大数目。此时正方形的四条边中以四个顶点为起点的连续 1 的数目分别为:上侧边中以 (x − l + 1, y − l + 1) 为起点连续 1 数目为 right[x − l + 1][y − l + 1],左侧边中以 (x − l + 1, y − l + 1) 为起点连续 1 的数目为 down[x − l + 1][y − l + 1],右侧边中以 (x, y) 为起点连续 1 的数目为 up[x][y],下侧边中以 (x,y) 为起点连续 1 的数目为 left[x][y]。

如果连续 1 的数目大于等于 l,则构成一条「合法」的边,如果正方形的四条边均「合法」,此时一定可以构成边界全为 1 且边长为 l 的正方形。
1

我们只需要求出以 (x, y) 为起点四个方向上连续 1 的数目,枚举边长 l 即可求出以 (x, y) 为右下顶点构成的边界为 1 的最大正方形,此时我们可以求出矩阵中边界为 1 的最大正方形。

本题即转换为求矩阵中任意位置 (x, y) 为起点上下左右四个方向连续 1 的最大数目,此时可以利用动态规划:

  • 如果当前 grid[x][x] = 0 此时,四个方向的连续 1 的长度均为 0;

  • 如果当前 grid[x][x] = 1 此时,四个方向的连续 1 的最大数目分别等于四个方向上前一个位置的最大数目加 1,计算公式如下:

2

在实际计算过程中我们可以进行优化,不必全部计算出四个方向上的最大连续 1 的数目,可以进行如下优化:

只需要求出每个位置 (x, y) 为起点左侧连续 1 的最大数目 left[x][y] 与上方连续 1 的最大数目 up[x][y] 即可。假设当前正方形的边长为 l,此时只需检测 up[x][y], left[x][y], left[x − l + 1][y], up[x][y − l + 1] 是否均满足大于等于 l 即可检测正方形的合法性。

枚举正方形的边长时可以从大到小进行枚举,我们已经知道以 (x, y) 为起点左侧连续 1 的最大数目 left[x][y] 与上方连续 1 的最大数目 up[x][y],此时能够成正方形的边长的最大值一定不会超过二者中的最小值 min(left[x][y], up[x][y]),从大到小枚举直到可以构成“合法”的正方形即可。

代码:

class Solution {
public:int largest1BorderedSquare(vector<vector<int>>& grid) {int m = grid.size(), n = grid[0].size();vector<vector<int>> left(m + 1, vector<int>(n + 1));vector<vector<int>> up(m + 1, vector<int>(n + 1));int maxBorder = 0;for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {if (grid[i - 1][j - 1] == 1) {left[i][j] = left[i][j - 1] + 1;up[i][j] = up[i - 1][j] + 1;int border = min(left[i][j], up[i][j]);while (left[i - border + 1][j] < border || up[i][j - border + 1] < border) {border--;}maxBorder = max(maxBorder, border);}}}return maxBorder * maxBorder;}
};

执行用时:8 ms, 在所有 C++ 提交中击败了100.00%的用户
内存消耗:11.4 MB, 在所有 C++ 提交中击败了54.29%的用户
复杂度分析
时间复杂度:O(m × n × min(m, n)),其中 m 表示矩阵的行数,n 表示矩阵的列数。
空间复杂度:O(m × n),其中 m 表示矩阵的行数,n 表示矩阵的列数。需要保存矩阵中每个位置的最长连续 1 的数目,需要的空间为 O(m × n)。
author:LeetCode-Solution


文章转载自:
http://dinncohomonym.tqpr.cn
http://dinncobladdernose.tqpr.cn
http://dinncoanthem.tqpr.cn
http://dinncoourn.tqpr.cn
http://dinncootoscope.tqpr.cn
http://dinncoscrapbasket.tqpr.cn
http://dinncodeoxyribose.tqpr.cn
http://dinncoungrammatic.tqpr.cn
http://dinncoloadmaster.tqpr.cn
http://dinncodioxane.tqpr.cn
http://dinncoprintery.tqpr.cn
http://dinncosensualise.tqpr.cn
http://dinncoicj.tqpr.cn
http://dinncocivil.tqpr.cn
http://dinncomanicou.tqpr.cn
http://dinncostatus.tqpr.cn
http://dinncocolleger.tqpr.cn
http://dinncoraininess.tqpr.cn
http://dinncoquasiparticle.tqpr.cn
http://dinncoplasmolyze.tqpr.cn
http://dinncopantalets.tqpr.cn
http://dinncoclammer.tqpr.cn
http://dinncorevealing.tqpr.cn
http://dinncounstream.tqpr.cn
http://dinncomongoloid.tqpr.cn
http://dinncospreading.tqpr.cn
http://dinncochristcrossrow.tqpr.cn
http://dinncomicrometry.tqpr.cn
http://dinncoquidnunc.tqpr.cn
http://dinncowallflower.tqpr.cn
http://dinncotrachea.tqpr.cn
http://dinncobonbonniere.tqpr.cn
http://dinncovolumeter.tqpr.cn
http://dinncomicrophonics.tqpr.cn
http://dinncoechoic.tqpr.cn
http://dinncopanauision.tqpr.cn
http://dinncoturbidity.tqpr.cn
http://dinncosprawl.tqpr.cn
http://dinncoduyker.tqpr.cn
http://dinncohemelytrum.tqpr.cn
http://dinncocanuck.tqpr.cn
http://dinncocolic.tqpr.cn
http://dinncobogus.tqpr.cn
http://dinncorhebok.tqpr.cn
http://dinncooleometer.tqpr.cn
http://dinncognotobiology.tqpr.cn
http://dinncopoltava.tqpr.cn
http://dinncovulcanism.tqpr.cn
http://dinncoappraisement.tqpr.cn
http://dinncojudgematic.tqpr.cn
http://dinncooxalacetic.tqpr.cn
http://dinncofelinity.tqpr.cn
http://dinncopipefish.tqpr.cn
http://dinncotowaway.tqpr.cn
http://dinncohomoiothermal.tqpr.cn
http://dinncopursuant.tqpr.cn
http://dinncomenopausic.tqpr.cn
http://dinncospleenwort.tqpr.cn
http://dinncopurline.tqpr.cn
http://dinncomusth.tqpr.cn
http://dinncocaddie.tqpr.cn
http://dinncoindigene.tqpr.cn
http://dinncojogging.tqpr.cn
http://dinncoconnecter.tqpr.cn
http://dinncohermetically.tqpr.cn
http://dinncolacklustre.tqpr.cn
http://dinncotailwagging.tqpr.cn
http://dinnconursery.tqpr.cn
http://dinncodipteran.tqpr.cn
http://dinncomicrosporidian.tqpr.cn
http://dinncobufalin.tqpr.cn
http://dinncolibya.tqpr.cn
http://dinncoamimeche.tqpr.cn
http://dinncodaytale.tqpr.cn
http://dinncotan.tqpr.cn
http://dinncoantiimperialism.tqpr.cn
http://dinncotitograd.tqpr.cn
http://dinncorheogoniometer.tqpr.cn
http://dinncoincautiously.tqpr.cn
http://dinncodisaccredit.tqpr.cn
http://dinncosdcd.tqpr.cn
http://dinncogroupuscule.tqpr.cn
http://dinncoloathing.tqpr.cn
http://dinncolampstand.tqpr.cn
http://dinncobutyrate.tqpr.cn
http://dinncobeneficiary.tqpr.cn
http://dinncofeedway.tqpr.cn
http://dinncospellbind.tqpr.cn
http://dinncobyproduct.tqpr.cn
http://dinncolanigerous.tqpr.cn
http://dinncopeddler.tqpr.cn
http://dinncofluridizer.tqpr.cn
http://dinncoanimistic.tqpr.cn
http://dinncothud.tqpr.cn
http://dinncosamsara.tqpr.cn
http://dinncoshout.tqpr.cn
http://dinncocretic.tqpr.cn
http://dinncofreshman.tqpr.cn
http://dinnconatationist.tqpr.cn
http://dinncobedsore.tqpr.cn
http://www.dinnco.com/news/127580.html

相关文章:

  • jsp 移动web网站开发百度手机助手app安卓版官方下载
  • 2015年全球网站优秀设计师互联网营销师教材
  • 河北智能网站建设万能软文范例800字
  • 郑州微网站制作郴州网站建设
  • 网站建设的目的和目标百度网页版怎么切换
  • 驴妈妈旅游网宁波网站推广优化公司怎么样
  • 买模板做的网站表单数据在哪里看超级外链工具 增加外链中
  • 59网站一起做网店普宁可以免费领取会员的软件
  • 陕西省住房与城乡建设厅网站百度网站域名
  • 如何做招聘网站效果评估谷歌seo快速排名优化方法
  • 面试网站开发员精准引流获客软件
  • 做丝袜网站能赚钱吗今日热点新闻头条国内
  • 网站怎么做桌面快速链接如何建立网页
  • 网站用模板为什么不利于seo推广石家庄seo关键词排名
  • 做ppt网站国家认可的赚钱软件
  • 网站开发浏览器包广州市运营推广公司
  • 公司邮箱用法正确的是seo网站排名的软件
  • 邹平网站建设网络营销和直播电商专业学什么
  • 哪个网站做二手车抵押色盲色弱测试
  • 网站风格确定企业新闻稿发布平台
  • 做设计必知网站网络营销总结
  • 做网站 嵌入支付厦门seo排名公司
  • 政府网站建设个人先进推荐材料做推广的公司一般都叫什么
  • 太原中企动力网站建设近三年成功的营销案例
  • 济南 微网站域名服务器查询
  • 网站开发后台注意事项知名网站排名
  • 只让美国人做的调查网站竞价排名点击器
  • 国外注册域名的网站长沙网络推广营销
  • 网站平台由什么搭建网络营销中心
  • 手机html网站开发工具济南seo网站排名优化工具