动态规划12(Leetcode221最大正方形)

代码:

java 复制代码
class Solution {
    public int maximalSquare(char[][] matrix) {
        int m = matrix.length;
        int n = matrix[0].length;
        int[][]area = new int[m][n];
        area[0][0] = matrix[0][0];
        int max = 0;
        for(int i=0;i<m;i++){
            area[i][0] = matrix[i][0]=='1'? 1:0;
            max = Math.max(area[i][0],max);
        }
        for(int j=0;j<n;j++){
            area[0][j] = matrix[0][j]=='1'? 1:0;
            max = Math.max(area[0][j],max);

        }
        for(int i=1;i<m;i++){
            for(int j=1;j<n;j++){
                if(matrix[i][j]=='0'){
                    area[i][j] = 0;
                }else if(area[i-1][j-1]==area[i][j-1]&&area[i-1][j-1]==area[i-1][j]){
                    area[i][j] = area[i-1][j-1]+1;
                    max = Math.max(area[i][j],max);
                }else{
                    area[i][j] = Math.min(Math.min(area[i-1][j-1],area[i-1][j]),area[i][j-1])+1;
                }              
            }
        }
        return max*max;
    }
}
相关推荐
墨尘笔尖2 小时前
最大最小值降采样算法的优化
c++·算法
white-persist4 小时前
【vulhub shiro 漏洞复现】vulhub shiro CVE-2016-4437 Shiro反序列化漏洞复现详细分析解释
运维·服务器·网络·python·算法·安全·web安全
FL16238631294 小时前
基于C#winform部署软前景分割DAViD算法的onnx模型实现前景分割
开发语言·算法·c#
baizhigangqw5 小时前
启发式算法WebApp实验室:从搜索策略到群体智能的能力进阶
算法·启发式算法·web app
C雨后彩虹5 小时前
最多等和不相交连续子序列
java·数据结构·算法·华为·面试
cpp_25016 小时前
P2347 [NOIP 1996 提高组] 砝码称重
数据结构·c++·算法·题解·洛谷·noip·背包dp
Hugh-Yu-1301236 小时前
二元一次方程组求解器c++代码
开发语言·c++·算法
编程大师哥6 小时前
C++类和对象
开发语言·c++·算法
加农炮手Jinx7 小时前
LeetCode 146. LRU Cache 题解
算法·leetcode·力扣
Rabitebla7 小时前
C++ 和 C 语言实现 Stack 对比
c语言·数据结构·c++·算法·排序算法