day115(3.17)——leetcode面试经典150

221. 最大正方形

221. 最大正方形

题目:

题解:

java 复制代码
class Solution {
    public int maximalSquare(char[][] matrix) {
        int n = matrix.length;
        int m = matrix[0].length;
        if(matrix==null||n<1||m<1) {
            return 0;
        }
        int[][] dp = new int[n+1][m+1];
        int maxSum=0;
        for(int i=1;i<=n;i++) {
            for(int j=1;j<=m;j++) {
                if(matrix[i-1][j-1]=='1') {
                    //这个操作使得如果左边,上边,左上边全是1的时候,才会计入边长加一,
                    //否则边长依旧是最小的,这就说明该点不会参与最短边长的计算
                    dp[i][j]=Math.min(Math.min(dp[i-1][j],dp[i][j-1]), dp[i-1][j-1])+1;
                    maxSum=Math.max(maxSum, dp[i][j]);
                }
            }
        }
        return maxSum*maxSum;
    }
}
相关推荐
Baihai_IDP2 小时前
OpenClaw 架构详解 · 第一部分:控制平面、会话管理与事件循环
人工智能·面试·llm
张李浩3 小时前
Leetcode 15三题之和
算法·leetcode·职场和发展
小涛不学习6 小时前
HTTP 和 HTTPS 详解(原理 + 区别 + 面试重点)
http·面试·https
Moment6 小时前
MiniMax 发布 M2.7,Agent 开始走向自我进化
前端·后端·面试
发现一只大呆瓜6 小时前
Vue-Vue Router核心原理+实战用法全解析
前端·vue.js·面试
做怪小疯子6 小时前
Leetcode刷题——8.重叠区间
算法·leetcode·职场和发展
发现一只大呆瓜6 小时前
性能优化:CDN 缓存加速与调度原理
前端·javascript·面试
xlp666hub6 小时前
【Linux驱动实战】:最简单的内核模块
linux·面试
_饭团6 小时前
指针核心知识:5篇系统梳理3
c语言·数据结构·算法·leetcode·面试·学习方法·改行学it