当前位置: 首页 > news >正文

2025年--Lc188--221. 最大正方形(多维动态规划,矩阵)--Java版

1.题目描述

在这里插入图片描述
在这里插入图片描述

2.思路

**dp[i][j] 表示:以 (i,j) 为右下角的、全是 ‘1’ 的最大正方形的“边长”。**要把它做大,必须依赖左、上、左上三个位置:dp[i-1][j]、dp[i][j-1]、dp[i-1][j-1]。
当 i0 或 j0(第一行或第一列)时,缺少上/左/左上这些邻居,无法扩成更大的正方形;如果此格是 ‘1’,那它能形成的最大正方形就只有自己这个 1×1,所以 dp[i][j] = 1;如果此格是 ‘0’,当然 dp[i][j] = 0。

matrix (3×4):
1 1 1 0
1 1 1 1
0 1 1 1

第一行 i=0:

(0,0)=‘1’ → dp[0][0]=1

(0,1)=‘1’ → dp[0][1]=1

(0,2)=‘1’ → dp[0][2]=1
这些都在第一行,所以只能是 1×1。

到 (1,2) 时就可以用三邻居扩张:

dp[1][2] = 1 + min(dp[0][2], dp[1][1], dp[0][1]) = 1 + min(1,1,1) = 2

在这里插入图片描述

3.代码实现

class Solution {public int maximalSquare(char[][] matrix) {//行数int m=matrix.length;//列数int n=matrix[0].length;//定义dp数组int[][] dp=new int[m][n];int side=0;//如果只有矩阵为空,面积直接是0//matrix.length == 0:没有任何行(0×N 矩阵),只有一列,是长方形不满足题意//matrix[0].length == 0:虽然有行,但第一行列数为 0(N×0 矩阵)。长方形不满足题意if(matrix==null||matrix.length==0||matrix[0].length==0){return 0;}//初始化正方形, 先遍历行,再遍历列for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(matrix[i][j]=='1'){ //边界情况//i==0说明只有一行,然后元素又含有1,此时最大的正方形只能有1个,面积为1//j==0说明只有一列,然后元素又含有1,此时最大的正方形只能有1个,面积为1if(i==0||j==0){//当前这个格子位于第一行或第一列。dp[i][j]=1;}else//正常情况{//dp[i][j]本身是正方形,面积为1,要判断它的左、上、左上的元素的值dp[i][j]=Math.min(Math.min(dp[i-1][j],dp[i][j-1]),dp[i-1][j-1])+1;}side=Math.max(side,dp[i][j]);}}}int sum=side*side;return sum;}
}
http://www.dtcms.com/a/485880.html

相关文章:

  • 【Redis】缓存读/写操作流程
  • 网站开发的网页模板移动网站建设价格便宜
  • Grafana 数据展示全流程指南:从安装到高级可视化实践
  • 电脑没法ping通某个网段的ip
  • ​rxnfp 仓库介绍(https://rxn4chemistry.github.io/rxnfp)​
  • iOS 26 文件管理实战,多工具组合下的 App 数据访问与系统日志调试方案
  • 工信部网站找回不了密码网站用什么做
  • MaxScale:MySQL读写分离实战指南
  • 基于Vue的体检中心管理系统的开发bk1825s9(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • RabbitMQ的概述
  • 使用PyTorch实现图像分类任务的全流程详解
  • JAVA代泊车接机送机服务代客泊车系统源码支持小程序+APP+H5
  • 吃谷机主题商城小程序的界面功能设计
  • 创建网站超市网络免费推广平台
  • 【征文计划】码上分享:基于 Rokid CXR-M SDK 构建「AI远程协作助手」实战全记录
  • PortSwigger靶场之CSRF where token is tied to non-session cookie通关秘籍
  • laya报错:GET http://xxx/bin/%22%22 404(Not Found)
  • 兴义市住房和城乡建设局网站莲花网站
  • 标题:Linux 系统中的“保险库管理员”:深入浅出理解 /etc/shadow 文件
  • CSS3》》 transform、transition、translate、animation 区别
  • HTML实现流星雨
  • JavaWeb-html、css-网页正文制作
  • GaussDB 分布式下, 报错concurrent update under Stream mode is not yet support
  • 服务器连接百度网盘并下载文件
  • 云计算实验3——CentOS中storm的安装
  • 一次被“动画关闭”启发的思考:Animate.css 与 prefers-reduced-motion 的无障碍设计
  • 《突破同质化:太空殖民地NPC行为差异化的底层架构》
  • 做网站ppt常见c2c网站有哪些
  • 专业手机网站建设价格明细表wordpress xiu 5.6
  • CSS 组合选择符详解