关闭

【Leetcode】Maximal Square

2332人阅读 评论(0) 收藏 举报
分类:

题目链接:https://leetcode.com/problems/maximal-square/

题目:

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:

1 0 1 0 0
1 0 1 1 1
1 1 1 1 1
1 0 0 1 0
Return 4.

思路:

用c[i][j]表示在长为i、宽为j的矩阵里面,包含matrix[i][j]这个点的最大正方形的长。

显然c[i][j]的大小跟c[i-1][j]、c[i][j-1]、c[i-1][j-1]有关。画图观察c[i-1][j]、c[i][j-1]、c[i-1][j-1]包围起来的面积

可知 c[i][j] = min(c[i-1][j]、c[i][j-1]、c[i-1][j-1]) +1

算法

public int maximalSquare(char[][] matrix) {  
        if (matrix.length == 0)  
            return 0;  
        int max = 0;  
        int c[][] = new int[matrix.length][matrix[0].length];  
        for (int i = 0; i < matrix.length; i++) {  
            for (int j = 0; j < matrix[0].length; j++) {  
                if (matrix[i][j] == '0') {  
                    continue;  
                }  
                if (i == 0 || j == 0) {// 在边缘时  
                    c[i][j] = 1;  
                } else {  
                    c[i][j] = Math.min(c[i - 1][j - 1], Math.min(c[i - 1][j], c[i][j - 1])) + 1;  
                }  
                max = Math.max(max, c[i][j]);  
            }  
        }  
        return max * max;  
    }  


1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Leetcode 473. Matchsticks to Square 卖火柴的小女孩画框框 解题报告

1 解题思想这道题的意思就是卖火柴的小女孩有一堆长度不等的火柴,他希望拼成一个正方形,不知道可以不可以?所谓可以就是: 1、用了所有火柴,一根不多,一根不少,当然一根用一次 2、四条边长度一样所以...
  • MebiuW
  • MebiuW
  • 2016-12-19 19:27
  • 3135

leetCode 85.Maximal Rectangle (最大矩阵) 解题思路和方法

Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing all ones and...
  • xygy8860
  • xygy8860
  • 2015-07-22 13:43
  • 989

(每日算法)Leetcode --- Maximal Rectangle(最大子矩阵)

求在0-1矩阵中找出面积最大的全1矩阵 Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle ...
  • yapian8
  • yapian8
  • 2014-12-25 21:35
  • 902

最小二乘法least square

上研究生的时候接触的第一个Loss function就是least square。最近又研究了一下,做个总结吧。 定义看wiki就够了。公式如下 E(w)=12∑n=1N{y−xWT}...
  • GarfieldEr007
  • GarfieldEr007
  • 2016-02-29 20:35
  • 1679

HDU 1398 Square Coins (母函数-整数拆分变形)

Square Coins Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T...
  • IAccepted
  • IAccepted
  • 2014-04-28 17:20
  • 2184

什么是LMS算法(Least mean square)

LMS算法可认为是机器学习里面最基本也比较有用的算法,神经网络中对参数的学习使用的就是LMS的思想,在通信信号处理领域LMS也非常常见,比如自适应滤波器。其它就是利用梯度下降的算法来实现的,具体推导如...
  • caimouse
  • caimouse
  • 2017-03-04 13:16
  • 1755

hdu 题目1398 Square Coins (母函数及其应用)

Square Coins Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T...
  • u011282069
  • u011282069
  • 2013-08-27 14:48
  • 911

【LeetCode-面试算法经典-Java实现】【所有题目目录索引】

【博文总目录>>>】 LeetCode算法题典   LeetCode是一个准备面试非常有用的网站,是非常值得去的地方,里面都是一些经典的面试题,这些题目在Google,Microsof...
  • DERRANTCM
  • DERRANTCM
  • 2015-07-16 06:27
  • 24699

hdu1518(Square)深搜+剪枝

点击打开杭电1518 Problem Description Given a set of sticks of various lengths, is it possible to join the...
  • u011479875
  • u011479875
  • 2015-08-03 20:45
  • 643

LeetCode 问题汇总(算法,难度,频率)

Id Question Difficulty Frequency Data Structures Algorithms 1 T...
  • sbitswc
  • sbitswc
  • 2014-03-13 11:58
  • 12088
    个人资料
    • 访问:557472次
    • 积分:8564
    • 等级:
    • 排名:第2658名
    • 原创:305篇
    • 转载:6篇
    • 译文:0篇
    • 评论:37条
    博客专栏
    文章分类
    最新评论