Leetcode 221 Maximal Square
2016-05-10 16:01
351 查看
Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1's and return its area.
For example, given the following matrix:
Return 4.
a[i][j]表示在以matrix[i][j]为右下角的最大正方形边长
转移方程:
如果当前位置为1,则:
否则为0
这边开了一个比matrix大一圈的a数组,来避免越界以及第一行和列的拷贝操作
For example, given the following matrix:
1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0
Return 4.
a[i][j]表示在以matrix[i][j]为右下角的最大正方形边长
转移方程:
如果当前位置为1,则:
a[i][j] = min(a[i-1][j-1],a[i-1][j],a[i][j-1]) + 1
否则为0
这边开了一个比matrix大一圈的a数组,来避免越界以及第一行和列的拷贝操作
class Solution(object):
def maximalSquare(self, matrix):
"""
:type matrix: List[List[str]]
:rtype: int
"""
if not matrix: return 0
m, n, t = len(matrix),len(matrix[0]), 0
a = [[0 for i in range(n+1)] for i in range(m+1)]
for i in range(1,m+1):
for j in range(1,n+1):
if matrix[i-1][j-1] == '1':
a[i][j] = min(a[i-1][j-1],a[i-1][j],a[i][j-1]) + 1t = max(t,a[i][j])
return t*t
相关文章推荐
- C# 之 判断或设置以管理员身份运行程序
- WordPress中设置Post Type自定义文章类型的实例教程
- 【C语言】数组对应位置交换值
- POV-Ray简单上手教程——第一幅图像和基础图形
- Android 从网上下载图片并显示到ListView上
- Andriod调用WebService交互(.net)
- rsync故障排除解答
- 飞机游戏
- Android_动态权限管理的解决方案
- MyBatis学习总结(七)——Mybatis缓存
- Android 如何对apk文件进行反编译以及重新打包签名
- Java反射机制的原理及在Android下的简单应用
- Android 如何对apk文件进行反编译以及重新打包签名 标签: apktoolandroid反编译jebSmali2Java 2016-05-10 16:00 3897人阅读 评论(0) 收藏
- [BZOJ3931][CQOI2015]网络吞吐量(spfa+最大流)
- HYSBZ 2160 拉拉队排练(回文树)
- caffe+Xubuntu14.04+cuda7.5+matlab2014b配置
- GridView
- iOS开发之静态库.a的制作教程
- HYSBZ 2160 拉拉队排练(回文树)
- jquery 页面刷新