当前位置:网站首页>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;
};
边栏推荐
- 按位逻辑运算符
- MySQL learning record 10getting started with JDBC
- TP-LINK 企业路由器 PPTP 配置
- Tcp/ip protocol
- Hutool gracefully parses URL links and obtains parameters
- [embedded] print log using JLINK RTT
- What are the common processes of software stress testing? Professional software test reports issued by companies to share
- 同一局域网的手机和电脑相互访问,IIS设置
- Screenshot in win10 system, win+prtsc save location
- 生成器参数传入参数
猜你喜欢
Target detection - pytorch uses mobilenet series (V1, V2, V3) to build yolov4 target detection platform
JVM quick start
Variable length parameter
目标检测——Pytorch 利用mobilenet系列(v1,v2,v3)搭建yolov4目标检测平台
JVM performance tuning and practical basic theory - Part 1
JVM performance tuning and practical basic theory - Part 1
PC easy to use essential software (used)
Deep analysis of C language pointer
marathon-envs项目环境配置(强化学习模仿参考动作)
2022.02.13 - NC003. Design LRU cache structure
随机推荐
优秀的软件测试人员,都具备这些能力
Image,cv2读取图片的numpy数组的转换和尺寸resize变化
Is it safe to open an account in Zheshang futures?
ROS compilation calls the third-party dynamic library (xxx.so)
Esp8266-rtos IOT development
pcd转ply后在meshlab无法打开,提示 Error details: Unespected eof
角色动画(Character Animation)的现状与趋势
Deep analysis of C language pointer
Modify the video name from the name mapping relationship in the table
如何进行接口测试测?有哪些注意事项?保姆级解读
[NVIDIA development board] FAQ (updated from time to time)
Navicat Premium 创建MySql 创建存储过程
Report on Market Research and investment prospects of China's silver powder industry (2022 Edition)
R language ggplot2 visualization, custom ggplot2 visualization image legend background color of legend
The problem and possible causes of the robot's instantaneous return to the origin of the world coordinate during rviz simulation
ROS编译 调用第三方动态库(xxx.so)
Image, CV2 read the conversion and size resize change of numpy array of pictures
Purpose of computer F1-F12
MySQL learning records 12jdbc operation transactions
On the inverse order problem of 01 knapsack problem in one-dimensional state