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

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

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

难度:medium

题目:给定由0,1组成的矩阵,找出由1组成的最大方块并返回其面积。

思路:动态规划

转换方程
grid[i][j] = Math.min(grid[i][j - 1], grid[i - 1][j], grid[i - 1][j - 1]) + 1 (matrix[i][j] = '1')

Runtime: 7 ms, faster than 97.80% of Java online submissions for Maximal Square.

Memory Usage: 40.8 MB, less than 70.46% of Java online submissions for Maximal Square.

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

转载地址:http://epnna.baihongyu.com/

你可能感兴趣的文章
KMP
查看>>
紫书 例题 11-1 UVa 12219 (表达式树)
查看>>
CPU利用率与Load Average的区别?
查看>>
MATLAB数据处理快速学习教程
查看>>
font property font-family does not have generic default?
查看>>
数字三角形
查看>>
GTID复制模式切换与传统主从复制间切换
查看>>
集成测试
查看>>
Python Learning Day1
查看>>
spring 四种注入方式
查看>>
C++Builder的一些学习资料
查看>>
Matlab调用C程序 分类: Matlab c/c...
查看>>
vue+typescript入门学习
查看>>
arpg网页游戏之地图(三)
查看>>
ExecuteScalar 返回值问题
查看>>
python - 自动化测试框架 - 测试报告
查看>>
多线程的那点儿事(基础篇)
查看>>
win10安装MarkdownPad 2报错This view has crashed的处理及md简单语法
查看>>
RESTful API测试工具
查看>>
Python 安装cx_Oracle模块折腾笔记
查看>>