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;
    }
}
相关推荐
库玛西8 小时前
现代 C++ 智能指针全景指南:从 RAII 思想到工业级实践
c语言·开发语言·c++·笔记·面试
Jackson__9 小时前
面试官:如何在老项目中使用新框架,并实现通信?
前端·javascript·面试
ychqsq12 小时前
115.整理
经验分享·职场和发展
吃着火锅x唱着歌12 小时前
LeetCode 3885.设计事件管理器
算法·leetcode·职场和发展
码匠许师傅12 小时前
【C++ 面试真题】聊聊 C++ 中的 lambda 表达式
java·c++·面试
程序员爱钓鱼17 小时前
Go for 循环详解
后端·面试·go
城管不管18 小时前
MySQL 慢查询完整排查
java·服务器·jvm·数据库·mysql·spring·面试
君君思密达18 小时前
LeetCode Hot 100 题目详解-滑动窗口
算法·leetcode·职场和发展
码匠许师傅1 天前
【C++ 面试真题】聊聊 C++ 的移动语义与右值引用
java·c++·面试
fqq31 天前
力扣刷题前置Java语法
算法·leetcode·职场和发展