当前位置:网站首页>LeetCode:221. 最大正方形
LeetCode:221. 最大正方形
2022-07-06 08:44:00 【Bertil】
在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内,找到只包含 ‘1’ 的最大正方形,并返回其面积。
示例 1:

输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]
输出:4
示例 2:
输入:matrix = [["0","1"],["1","0"]]
输出:1
示例 3:
输入:matrix = [["0"]]
输出:0
提示:
- m == matrix.length
- n == matrix[i].length
- 1 <= m, n <= 300
- matrix[i][j] 为 ‘0’ 或 ‘1’
解题思路
1.首先定义一个数组dp表示以[i][j]为正方形右下角的最大边长,定义一个变量max_len表示最大正方形的边长
2.状态转移方程:dp[i][j] = Math.min(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1]) + 1;(取三者的最小值是因为要构成正方形)
3.注意:若左边和上边的点为’1’,则dp[i][j] = 1
代码
/** * @param {character[][]} matrix * @return {number} */
var maximalSquare = function(matrix) {
let max_len = 0;
let dp = Array.from(Array(matrix.length), () => Array(matrix[0].length).fill(0));
for (let i = 0; i < matrix.length; i++) {
for (let j = 0; j < matrix[i].length; j++) {
if (matrix[i][j] === '1') {
if (i === 0 || j === 0) {
dp[i][j] = 1;
}else {
dp[i][j] = Math.min(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1]) + 1;
}
max_len = Math.max(max_len, dp[i][j]);
}
}
}
return max_len ** 2;
};
边栏推荐
- Cisp-pte practice explanation
- Detailed explanation of heap sorting
- The problem and possible causes of the robot's instantaneous return to the origin of the world coordinate during rviz simulation
- 同一局域网的手机和电脑相互访问,IIS设置
- 被破解毁掉的国产游戏之光
- egg. JS project deployment online server
- Fairguard game reinforcement: under the upsurge of game going to sea, game security is facing new challenges
- MySQL learning record 11jdbcstatement object, SQL injection problem and Preparedstatement object
- POI add write excel file
- Variable length parameter
猜你喜欢

Light of domestic games destroyed by cracking

Current situation and trend of character animation

2022.02.13 - NC004. Print number of loops

PC easy to use essential software (used)

ROS compilation calls the third-party dynamic library (xxx.so)

Problems in loading and saving pytorch trained models

vb.net 随窗口改变,缩放控件大小以及保持相对位置

【嵌入式】使用JLINK RTT打印log

深度剖析C语言指针

堆排序详解
随机推荐
目标检测——Pytorch 利用mobilenet系列(v1,v2,v3)搭建yolov4目标检测平台
JVM 快速入门
Esp8266-rtos IOT development
Double pointeur en langage C - - modèle classique
Sublime text in CONDA environment plt Show cannot pop up the problem of displaying pictures
marathon-envs项目环境配置(强化学习模仿参考动作)
Verrouillage [MySQL]
【ROS】usb_cam相机标定
Analysis of the source code of cocos2d-x for mobile game security (mobile game reverse and protection)
[embedded] print log using JLINK RTT
Deep anatomy of C language -- C language keywords
The mysqlbinlog command uses
深度剖析C语言指针
egg. JS getting started navigation: installation, use and learning
After PCD is converted to ply, it cannot be opened in meshlab, prompting error details: ignored EOF
Restful API design specification
vb.net 随窗口改变,缩放控件大小以及保持相对位置
有效提高软件产品质量,就找第三方软件测评机构
Light of domestic games destroyed by cracking
Tcp/ip protocol