博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
221. Maximal Square - Medium
阅读量:7227 次
发布时间:2019-06-29

本文共 931 字,大约阅读时间需要 3 分钟。

Given a 2D binary matrix filled with 0's and 1's, find the largest square containing only 1's and return its area.

Example:

Input: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0Output: 4

 

用dp。二重循环,如果dp[i][j]=1,检查一下它的上、左、右,取三个值中的最小值+1 (dp[i][j]),再更新一下max。

注意dp的长度比matrix多1.

时间:O(N^2),空间O(N^2)

class Solution {    public int maximalSquare(char[][] matrix) {        if(matrix == null || matrix.length == 0 || matrix[0].length == 0) return 0;                int m = matrix.length, n = matrix[0].length, max = 0;        int[][] dp = new int[m+1][n+1];                for(int i = 1; i <= m; i++) {            for(int j = 1; j <= n; j++) {                if(matrix[i-1][j-1] == '1') {                    dp[i][j] = Math.min(dp[i-1][j-1], Math.min(dp[i][j-1], dp[i-1][j])) + 1;                    max = Math.max(max, dp[i][j]);                }            }        }        return max * max;    }}

 

转载于:https://www.cnblogs.com/fatttcat/p/10039295.html

你可能感兴趣的文章
利用OpenStreetMap(OSM)数据搭建一个地图服务
查看>>
TopN算法与排行榜
查看>>
lucene排序算法之向量空间模型(一)
查看>>
新浪微博数据Json格式解析
查看>>
WLAN 802.11 wifl区别
查看>>
oracle授权动态视图权限给用户
查看>>
Debian – 出现-bash: pip: command not found错误解决办法
查看>>
Zxing扫描二维码
查看>>
我的友情链接
查看>>
aspcms后台拿shell漏洞(非添加模块)及修复方法
查看>>
C语言冒泡排序法
查看>>
B2B行业门户网站群发邮件时间及发送频率
查看>>
关于虚拟机能ping通物理机,而物理机ping不通虚拟机问题解决。
查看>>
同台机器启动多个mysql
查看>>
iframe 跨域高度自适应
查看>>
struts2+hibernate3+spring3(ssh2)框架下的web应用
查看>>
Linux下的三个时间属性
查看>>
semanage
查看>>
[case分享]Exchange 2010 登陆OWA查看邮件出现Rights managem operation failed
查看>>
linux dd 读取 写入磁盘速度
查看>>