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

福安建设网站广州网站营销seo

福安建设网站,广州网站营销seo,西安市城乡建设委员会查询网站,东营建设信息网招聘最大的以 1 为边界的正方形 难度:中等 给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。如果不存在,则返回 0。 示例 1: 输入&#xff1a…

最大的以 1 为边界的正方形

难度:中等

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

示例 1:

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

示例 2:

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

前缀和

思路:

  • 数据量较小,也可以用二维前缀和写,用前缀和节省边长的计算时间
  • 遍历正方形边长求出区域和,然后减去中间那块区域是否等于两边都为111的和,假如正方形边长为333,那么边长都为111的和为: 32−(3−2)2=83^2-(3-2)^2=832(32)2=8
    请添加图片描述

复杂度分析:

  • 时间复杂度: O(mn)O(mn)O(mn),其中 mmmnnn 分别为 grid\textit{grid}grid 的行数和列数,不一定是mnmnmn,大佬可是帮我分析一下是多少。
  • 空间复杂度: O(mn)O(mn)O(mn)
class Solution:def largest1BorderedSquare(self, grid) -> int:# 构建前缀和,行列各构建一个数组row, col = len(grid), len(grid[0])prev_row = [[0] * (col + 1) for _ in range(row)]prev_col = [[0] * (row + 1) for _ in range(col)]for i in range(row):for j in range(col):prev_row[i][j+1] = prev_row[i][j] + grid[i][j]prev_col[j][i+1] = prev_col[j][i] + grid[i][j]# 遍历所有元素res = 0 for i in range(row):for j in range(col):# 如果该节点为1,则可能是正方形的左顶点if grid[i][j] == 1:# 令长度等于当前遍历过的最大长度length = res# 慢慢增加边长看是否能成立while length + i <= row and length + j <= col:# 如果长度不合适,那无论怎么增加长度,都不可能是正方形,直接退出if prev_row[i][j + length] - prev_row[i][j] != length:break# 计算4条边的长度fh = prev_row[i][j + length] - prev_row[i][j]fl = prev_col[j][i + length] - prev_col[j][i]lh = prev_row[i + length - 1][j + length] - prev_row[i + length - 1][j]ll = prev_col[j + length - 1][i + length] - prev_col[j + length - 1][i]# 判断边上的点是否等于边长为length的值,如果相等那他就是一个正方形if length ** 2 - max(0, length - 2)**2 == fh + fl + lh + ll - 4:res = max(res, length)length += 1# 因为边长为1的时候,他的边长不是 四条边分别的元素个数 - 4,而且只要有原始是1,# 就说明是边长为1的正方向,所以每次出来的时候,让他和1取最大的边长为结果if res < 1:res = 1return res ** 2

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/largest-1-bordered-square

http://www.dinnco.com/news/51126.html

相关文章:

  • 兰州大学网页与网站设计怎样做竞价推广
  • 邢台手机网站建设地方网络营销的概念与特点
  • 许昌做网站优化网址查询ip地址
  • 成都网站关键词排名app排名优化公司
  • 网站制作时间代码域名解析ip地址
  • 吕梁网站制作吕梁安全杭州网络推广
  • 淘宝客网站制作百度推广代理商查询
  • 长沙专门做网站建设的公司互联网营销师培训内容
  • 台州seo网站排名网络营销与网站推广的区别
  • 深圳网站设计吧seo专业培训课程
  • 四川建设门户网站建网站的详细步骤
  • 贵阳专业做网站的公司武汉seo工厂
  • 凡科建站代理登录入口互联网营销师培训机构
  • 网站新媒体建设百度统计app下载
  • 中台网站开发新东方烹饪学校学费价目表
  • 网站建设用哪个软件外包公司有前途吗
  • 三亚网站建设公司石家庄网络推广
  • 做淘宝头像的网站如何快速推广网站
  • 免费网站后台管理系统模板搜索引擎优化的方法与技巧
  • 海南网站建设介绍googleplay安卓版下载
  • 上传网站 php 服务器百度怎么推广产品
  • 我的网站dede成人厨师短期培训班
  • 免费咨询海报武汉搜索引擎排名优化
  • 做网站简单需要什么软件国内最好的危机公关公司
  • 网站的静态资源服务器怎么做it培训
  • 摇一摇抽签用什么网站做网站客服系统
  • 知名的软件开发公司深圳优化公司找高粱seo服务
  • 厦门在线制作网站百度免费推广平台
  • 网站直播怎么做的手机网站自助建站系统
  • 淄博哪家网络公司做网站好百度网页版入口链接