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,一经查实,立即删除!

相关文章

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

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

辨别文件的真实类型

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)…

GARFIELD@01-31-2005

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

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

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

[Mac]一些命令技巧

Git相关 mac下git默认不区分大小写&#xff0c;通过下面脚本可以改变 #!/bin/bash# 让git区分大小写 cd path-of-project git config core.ignorecase false git不会将空文件夹添加到版本控制中&#xff0c;下面脚本可以让空文件夹加到git # 将所有空文件夹添加到git cd path-o…

GARFIELD@02-24-2005

a cat on a ball 转载于:https://www.cnblogs.com/rexhost/archive/2005/02/25/109153.html

网站总结 和 相关控件 总结

2019独角兽企业重金招聘Python工程师标准>>> 学习篇 https://github.com/Aufree/trip-to-iOS 开源库 http://github.ibireme.com/github/list/ios/ 项目管理和工具 测试&#xff1a;TestFlight 依赖管理&#xff1a;CocoaPods 自动生成推送证书&#xff1a;Gen…

西门子新款A系列手机【ZZ】

linked from http://www.tompda.com/neirong.asp?id809 西门子新款A系列手机   首页 > 新闻资讯 提交 shizhi 2005-2-25  阅读:2739次 10篇评论 西门子公司近日推出了A系列手机&#xff0c;A系列手机作为入门级手机&#xff0c;设计和功能十分简洁和实用。 西门子A70:设…

Chord算法

转自&#xff1a;http://blog.csdn.net/wangxiaoqin00007/article/details/7374833 虽然网上搜索CHord&#xff0c;一搜一大堆&#xff0c;但大多讲得不太清楚明白。今天发现一篇blog&#xff0c;图文并茂&#xff0c;逻辑清楚且易懂&#xff0c;特意转载收藏。 P2P的一个常见问…

地籍宗地出图(一)

在ArcGIS中&#xff0c;我们经常需要标注&#xff1b;在地籍处理中&#xff0c;需要承包地出图。具体的出没有可参考的标准。通常软件中的做法有&#xff1a; 第一种&#xff0c;以村组为背景&#xff0c;将某户的承包地选择出来&#xff0c;并标黑。这样的结果&#xff0c;领导…

黑马程序员_java基础笔记(15)...银行业务调度系统_编码思路及代码

—————————— ASP.NetAndroidIOS开发、.Net培训、期待与您交流&#xff01;—————————— 1&#xff0c;面试题目&#xff1a;银行业务调度系统 模拟实现银行业务调度系统逻辑&#xff0c;具体需求如下&#xff1a; 银行内有6个业务窗口&#xff0c;1 — 4号窗口…

一次非常有意思的sql优化经历

原文:一次非常有意思的sql优化经历场景 我用的数据库是mysql5.6&#xff0c;下面简单的介绍下场景 课程表 create table Course(c_id int PRIMARY KEY,name varchar(10))数据100条 学生表: create table Student(id int PRIMARY KEY,name varchar(10))数据70000条 学生成绩表SC…

python matplotlib绘图大全(散点图、柱状图、饼图、极坐标图、热量图、三维图以及热图)...

//2019.7.14晚matplotlib七种常见图像输出编程大全 七种图形汇总输出如下&#xff1a; import numpy as np #导入数据结构nmupy模块import matplotlib.pyplot as plt #导入matplotlib图像输出模块plt.rcParams["font.sans-serif"]["SimHei"] #输出图像的标…

【活动】畅想云端加油站,赢iPad

2019独角兽企业重金招聘Python工程师标准>>> 中石化联手阿里云升级石油化工业务&#xff0c;已运行2月 中石化的“互联网”战略正在不断深化。4月20日消息&#xff0c;中石化与阿里云共同宣布&#xff0c;双方将展开技术合作&#xff0c;借助阿里巴巴在云计算、大数…

编写 Servlet 2.3 Filter

Servlets Filter 是Servlet 2.3 规范中新增加的&#xff0c;它是截取用户从客户端提交的请求&#xff0c;在还没有到达需要访问的资源时运行的一个类。它操纵来自客户端的请求&#xff0c;在资源还没有初发送到客户端前截取响应&#xff0c;并处理这些还没有发送到客户端的响应…

我记录网站综合系统 -- 技术原理解析[0:简介(代序) 1.7Beta源代码下载开始]...

看到了路过秋天的博客系统受到了大家的好评&#xff0c;我也来介绍一个好的开源的CMS系统。我记录网站综合系统 是 掷鸡蛋者 的作品&#xff0c;这个家伙将大量的时间和精力放在这个项目上了&#xff0c;可以算一个创业项目。对于这样的同志&#xff0c;我只有敬佩他和全力支持…

PowerShell在Exchange2010下快速创建动态通讯组

Exchange中遇到一个小需求&#xff0c;有很多部门要申请动态通信组&#xff0c;问题是二级部门三级部门四级部门非常非常多。……Get-ADObject -LDAPFilter "(&(&(ou>"")))" -SearchBase OUxx,OUxxx,DCxxx,DCxxx,DCcom -Properties CanonicalNa…