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

注册营业执照网站合肥免费做网站

注册营业执照网站,合肥免费做网站,广东朝阳企讯通科技有限公司,seo网站建设哪家专业一、题目描述 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 输入:matrix [["1","0","1","0","0"],["1","0&…

一、题目描述

给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。

输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]
输出:6
解释:最大矩形如上图所示。

二、思路分析

 暴力枚举+高度数组

首先我们发现,其实找一块块矩阵时,很多时候我们都要重复的寻找一些单元格,来确保我们可以找到最大的矩阵面积。 所以我们可以使用动态规划,来帮助我们记录之前查找过的矩阵信息。我们定义height[i]代表当前行的第j列往上数,数字为1的矩阵高度。然后我们开始一行行遍历,在第i行时,我们要从第j列开始往前查找j-1一直到0,每次的高度取这一路的最小值,然后不断更新最大值。

单调栈

我可以参考关于Leetcode-84.柱状图中最大的矩形。首先我们仍然计算出每一行的高度数组,然后遍历每一行,像上面这个文章一样,看成计算柱状图中的最大矩阵即可。

三、实现代码

只写了暴力枚举的,单调栈方法的代码和上个题差不多,偷个懒。

class Solution:def maximalRectangle(self, matrix: List[List[str]]) -> int:row = len(matrix)col = len(matrix[0])result = 0#height[j]代表在第j列目前为1的矩阵高度height = [0] * colfor i in range(row):for j in range(col):if matrix[i][j] == '1':height[j] += 1if j == 0:result = max(result, height[j])continuemin_height = height[j]for t in range(j, -1, -1):if height[t] == 0:breakmin_height = min(min_height, height[t])current_area = min_height * (j-t+1)result = max(result, current_area)else:height[j] = 0return result

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

相关文章:

  • 电商网站开发平台哪个好做非法网站要多少钱
  • 哪些公司经常做网站现在外贸推广做哪个平台
  • 新野做网站免费建立个人网站的视频
  • 海南网站推广租网站空间
  • 网站动态搜索框代码广州设计公司网站
  • 学院网站建设的现状分析乌海网络推广
  • 南通公司建站模板湛江网站建设公司
  • 水果 网站源码无需会员免费ppt模板
  • 五常市网站北京企业网站案例
  • 网站 需求文档delphi网站开发
  • 系统官网网站模板下载地址沙洋建设局网站
  • 佛山 网站关键词优化施工企业公司管理制度
  • 南沙区做网站公司网站备案 域名证书
  • 做购物比价的网站wordpress商业主体
  • 软件网站开发公司wordpress完全静态化插件
  • 各类郑州网站建设网页如何保存密码
  • 网站伪静态如何配置文件绍兴公司注册
  • 北京网站手机站建设公司电话wordpress代码下载
  • 长沙优化网站推广济南做网站找大标
  • 杭州企业网站制作哪个好济南高端建站
  • 杭州高端网站设计施工企业费用预算的编制的内容包括哪些
  • 一份完整的网站策划方案辛集市住房和城乡建设厅网站
  • 建设企业网站的目的以及意义做淘宝券网站
  • 青岛网站建设订做包头市做网站
  • 张掖网站设计公司电台 主题 wordpress
  • 新品发布会推广词常州建站优化
  • 天津建设工程交易信息网郑州网站排名优化
  • 模板 网站wordpress调用指定文章分类链接
  • 网站制作属于什么品牌企业解决方案ppt
  • 漂亮大气网站天津网站建设zymxart