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

建立收费网站互联网媒体推广

建立收费网站,互联网媒体推广,网站建设人才,wordpress如何添加背景音乐一、题目描述 给定一个仅包含 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.ds6.com.cn/news/116148.html

相关文章:

  • 做logo什么网站沈阳网站制作公司
  • 佛山网站建设方案百度seo公司报价
  • 自助建站平台搭建钦州seo
  • 浦东新区办营业执照哪里办seo的主要分析工具
  • 北京做网站的公司排名足球世界排名前十
  • 网站收录减少搜索引擎推广的优势
  • 做网站汉口教育培训机构加盟十大排名
  • 做外贸批发用什么网站广告推送平台
  • 东莞做网站多少钱北京网站优化指导
  • 网站开发实训周报网站怎么快速收录
  • 如何做好网站设计大连网站优化
  • jpress和wordpressseo搜索优化专员招聘
  • 谈谈网站的开发流程微信营销的案例
  • 三网合一 做网站新站seo优化快速上排名
  • 什么公司网站建设做的好软文发稿公司
  • 旅行社电商网站怎么做企业策划书
  • 网站开发公司 广告词网络营销的概述
  • 做网站老师免费seo推广计划
  • 电影购票网站开发背景郑州seo推广
  • 网站建设一般要提供什么内容搜索引擎优化的五个方面
  • 网站网页设计一句简短走心文案
  • 成都网站开发的公司百度投诉电话人工客服24小时
  • 有做酒席酒水网站吗上海网站建设公司排名
  • 美国站点网站怎么做下载百度地图2022最新版
  • 网站建设案例要多少钱如何开网站呢
  • 如何自己建网站服务器广州seo网站服务公司
  • 效果图制作网站网站的seo如何优化
  • 网站建设费怎么做会计分录百度营销客户端
  • 安卓从网站获取视频怎么做网站维护工程师
  • 公司开发个网站如何做google推广