LeetCode—221. 最大正方形

221. 最大正方形

题目描述:
在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内,找到只包含 ‘1’ 的最大正方形,并返回其面积。
在这里插入图片描述

考察重点:动态规划

方法概括:二维矩阵中查询最大矩形 dp[i][j] = Min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1]) + 1 也可以使用暴力算法:向右下遍历

func findMin(a, b, c int) int {temp := aif temp > b {temp = b}if temp > c {temp = c}return temp
}
func MaximalSquare(matrix [][]byte) int {var recmatrix [][]int //负责记录每一个点可以达到的最大面积for i := 0; i < len(matrix); i++ {t := make([]int, len(matrix[0]))recmatrix = append(recmatrix, t)}var max int = 0for i := 0; i < len(matrix); i++ {for j := 0; j < len(matrix[0]); j++ { //遍历所有节点	查找他左侧,上侧,左上侧节点可以达到的最大面积进行比较if matrix[i][j] == '0' {continue}if i == 0 || j == 0 { //边缘节点必定为1recmatrix[i][j] = 1if recmatrix[i][j] > max { //考虑 0 1 的情况max = recmatrix[i][j] //	  1 0}continue}/**状态转移方程dp[i][j] = Min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1]) + 1*/recmatrix[i][j] = findMin(recmatrix[i-1][j], recmatrix[i][j-1], recmatrix[i-1][j-1]) + 1if recmatrix[i][j] > max {max = recmatrix[i][j]}}}return max * max //返回面积
}
##################暴力解法######################
func decima(matrix [][]byte, i, j int) int {var k int/**从a开始 k为向外步数,此处为1-3k=1遍历b,k=2遍历c,k=3遍历d..........a b c d..b b c d..c c c d..d d d d..........*/for k = 1; k < len(matrix)-i && k < len(matrix[0])-j; k++ {for i1 := i; i1 <= i+k; i1++ { //列不动,遍历行(纵向)if matrix[i1][j+k] == '0' {return k - 1 //如果有一个参数不为1,直接返回k-1(这一轮不符合要求,说明上一轮符合要求)}}for j1 := j; j1 <= j+k; j1++ { //行不动,遍历列(横向)if matrix[i+k][j1] == '0' {return k - 1}}}return k - 1
}func MaximalSquare(matrix [][]byte) int {var max int = 0for i := 0; i < len(matrix); i++ {for j := 0; j < len(matrix[0]); j++ { //遍历所有节点if matrix[i][j] == '0' {continue}temp := decima(matrix, i, j) + 1 //若当前结点为1,则向他右下方遍历。走k-1步为矩形,说明矩形大小为(k-1) + 1if temp > max {max = temp}}}return max * max //返回面积
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263510.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

发布Activex

1、如果需要创建cab文件&#xff0c;首先需要Cabarc或者Makecab&#xff0c;它们随着Cabinet SDK的安装就有了&#xff0c;Cabinet SDK的下载地址是http://msdn.microsoft.com/workshop/management/cab/cabdl.asp。 Cabarc可以创建、查看或者解出cab里面的文件&#xff0c;而…

做汉堡

其实我还是不太明白为什么要叫做汉堡&#xff0c;虽然我很喜欢吃汉堡..... 对于上次结对子作业的队友&#xff0c;小伙伴&#xff0c;我只想说一个字赞&#xff01;前所未有的感觉&#xff08;夸张了点&#xff09;... first&#xff0c;我们对整个任务没有做出工作量分析&…

Egret入门学习日记 --- 第二篇

第二篇&#xff08;学习篇&#xff09; 既然选好了Egret&#xff0c;那我就要想想怎么学了。 开始第一步&#xff0c;先加个Q群先&#xff0c;这不&#xff0c;拿到了一本《Egret HTML5游戏开发指南》&#xff0c;阅至三章&#xff0c;得到印象相对较深的好处和坏处&#xff1…

参加Sun公司的新产品的发布会议

在2004年的最后阶段&#xff0c;能收到Sun公司的邀请函&#xff0c;去参加“Sun秋季产品发布会”&#xff0c;是在沈阳的丽都喜来登酒店&#xff0c;幸运的是&#xff0c;这次地点是上次微软公司msdn发布会的邻居&#xff0c;也是五星级别的。不过这次去的时候&#xff0c;小妹…

LeetCode—222. 完全二叉树的节点个数

222. 完全二叉树的节点个数 题目描述&#xff1a; 给你一棵 完全二叉树的根节点 root &#xff0c;求出该树的节点个数。 完全二叉树的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底层节点可能没填满外&#xff0c;其余每层节点数都达到最大值&#xff0c;并且最下…

编程珠玑读书笔记之磁盘文件排序

输入&#xff1a; 所输入的是一个文件&#xff0c;至多包含n个正整数&#xff0c;每个正整数都要小于n&#xff0c;这是 n 10^7。如果输入时某个整数出现了两次&#xff0c;就会产生一个致命的错误。这些整数与其他任何数据都不关联。 输出&#xff1a; 以增序形式输出的经过排…

辨别文件的真实类型

2019独角兽企业重金招聘Python工程师标准>>> 参考博客http://blog.csdn.net/shixing_11/article/details/5708145 每个文件类型都对应着一个编码头部 下面这些是已知的文件头部[自定义的枚举类型] package org.masque.file; /*** * Description:文件对应的文件头,资…

ng build --prod --aot打包Angluar4项目报javaScript heap out of memory,内存溢出

这里 Allocation failed - JavaScript heap out of memory JavaScript堆内存不足&#xff0c;我们都知道 Node 是基于V8引擎&#xff0c;在一般的后端开发语言中&#xff0c;在基本的内存使用上没有什么限制&#xff0c;但是我去查阅了相关的资料才发现&#xff0c;在 Node 中通…

GARFIELD@12-02-2004

your BELLY is more ready to be convinced than your BRAIN 转载于:https://www.cnblogs.com/rexhost/archive/2004/12/02/72000.html

LeetCode—223. 矩形面积

223. 矩形面积 题目描述&#xff1a; 给你 二维 平面上两个 由直线构成且边与坐标轴平行/垂直 的矩形&#xff0c;请你计算并返回两个矩形覆盖的总面积。 每个矩形由其 左下 顶点和 右上 顶点坐标表示&#xff1a; 第一个矩形由其左下顶点 (ax1, ay1) 和右上顶点 (ax2, ay2)…

Spring Android 1.0.0.M3 发布

Spring Android 项目今天发布了第三个里程碑版本。 Spring Android 是一个在 Android 环境下使用 Spring 框架的项目&#xff0c;M3 版本主要是为 Android 应用扩展了对 Spring Social 的支持&#xff0c;包括&#xff1a; 通过全新的 Spring Android Auth 模块支持 Spring Soc…

几种开源工作流引擎的简单比较(转)

摘要&#xff1a;目前开源工作流引擎用的最多的是jbpm &#xff0c; 各种特性都不错&#xff0c; 文档也比较多&#xff0c; 下面只简单列举一下目前开源工作流引擎用的最多的是jbpm &#xff0c; 各种特性都不错&#xff0c; 文档也比较多&#xff0c; 下面只简单列举一下 其他…

LeetCode—224. 基本计算器(困难)

224. 基本计算器&#xff08;困难&#xff09; 题目描述&#xff1a; 给你一个字符串表达式 s &#xff0c;请你实现一个基本计算器来计算并返回它的值。 注意:不允许使用任何将字符串作为数学表达式计算的内置函数&#xff0c;比如 eval()。 考察重点&#xff1a;使用go建立…

LBS业务资料随记

技术规范&#xff1a;设备技术要求&#xff0c;SP Access接口规范&#xff0c;GIS结构规范、L1接口规范、地图标准规范、终端规范 一个小型的ArcIMS网站 http://www.geo-spatial.net/csk/Downloads/default.aspx 基于位置的业务 。。随着用户移动终端设备的普及&#xff0c;简…

shell 和 || 的短路使用

shell && 和 || 的短路使用 && 和 || 在 shell 中分别表示 and 和  or&#xff0c;和其它语言类似&#xff0c;这两个操作有短路效应。也就是说&#xff0c;当判断式已经确定时&#xff0c;不再继续处理后续表达式。 && 在失败时中断&#xff0c; || …

XiaoKL学Python(C)__future__

__future__ in Python 1. from __future__ import xxxx 这是为了在低版本的python中使用可能在某个高版本python中成为语言标准的特性&#xff0c;从而 在将代码由低版本迁移到高版本的过程中&#xff0c;减少需要做的工作。 这种语句被称为 future_statement 2. future_state…

LeetCode—227. 基本计算器 II

227. 基本计算器 II 题目描述&#xff1a; 给你一个字符串表达式 s &#xff0c;请你实现一个基本计算器来计算并返回它的值。 整数除法仅保留整数部分。 你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围内。 注意&#xff1a;不允许使用任何将…

GARFIELD@01-31-2005

savage sandwich 转载于:https://www.cnblogs.com/rexhost/archive/2005/01/31/99836.html

js 和 query 获取页面和滚动条的高度

//页面位置及窗口大小 function GetPageSize() {var scrW, scrH; if(window.innerHeight && window.scrollMaxY) { // Mozilla scrW window.innerWidth window.scrollMaxX; scrH window.innerHeight window.scrollMaxY; } else if(document.body.scrollHe…

【ABAP系列】SAP ABAP模块-任意report作为附件以邮件形式发送

公众号&#xff1a;SAP Technical本文作者&#xff1a;matinal原文出处&#xff1a;http://www.cnblogs.com/SAPmatinal/ 原文链接&#xff1a;【ABAP系列】SAP ABAP模块-任意report作为附件以邮件形式发送前言部分 大家可以关注我的公众号&#xff0c;公众号里的排版更好&…