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

leetcode 221. 最大正方形

题目如下
在这里插入图片描述
数据范围
在这里插入图片描述

典型的动态规划题。
令f(i,j)为以i,j为右下角左边正方形的最大边长,
当且仅当f(i,j) > 0(即 矩阵(ij)不为’0’)时
f(i,j) = min(f(i,j - 1),f(i - 1,j - 1),f(i - 1,j))
对这个方程不太理解的话借用leetcode官方的图

在这里插入图片描述
也就是说边长为n的正方形可以由3个边长n-1的正方形以及边长1的正方形组成。
通过代码

class Solution {
public:
   int maximalSquare(vector<vector<char>>& matrix) {
        int m = matrix.size();
        int n = matrix[0].size();
        int max1 = 0;
        vector<vector<int>> dp(m,vector<int>(n));
        for(int i = 0;i < m;i++) {
            for(int j = 0;j < n;j++) {
                if(matrix[i][j] == '1'){dp[i][j] = 1;max1 = 1;}
                else dp[i][j] = 0;
            }
        }
    for(int i = 1;i < m;i++) {
        for(int j = 1;j < n;j++) {
            if(dp[i][j] == 1) dp[i][j] = min(min(dp[i - 1][j - 1],dp[i - 1][j]),dp[i][j - 1]) + 1;
           
            max1 = max(max1,dp[i][j]);
        }
        
    }
  
    return max1 * max1;
}
};

在这里插入图片描述


http://www.kler.cn/a/512058.html

相关文章:

  • Data Filtering Network 论文阅读和理解
  • Javascript 将页面缓存存储到 IndexedDB
  • ChromeOS 132 版本更新
  • 利用rsync备份全网服务器数据
  • Mysql 主从复制原理及其工作过程,配置一主两从实验
  • 循环队列(C语言)
  • 提升大语言模型的三大策略
  • NLP 单双向RNN+LSTM+池化
  • 苍穹外卖 项目记录 day07 商品缓存-购物车模块开发
  • [实战]Ubuntu使用工具和命令无法ssh,但使用另一台Ubuntu机器可以用命令ssh,非root用户。
  • 『 实战项目 』Cloud Backup System - 云备份
  • Kotlin 2.1.0 入门教程(五)
  • 【useImperativeHandle Hook】通过子组件暴露相应的属性和方法,实现在父组件中访问子组件的属性和方法
  • React 中hooks之useDeferredValue用法总结
  • 深度学习 | 基于 LSTM 模型的多电池健康状态对比及预测
  • 【柱状图】——18
  • 【玩转全栈】----Django制作部门管理页面
  • 基于SpringBoot的智能家居系统的设计与实现(源码+SQL脚本+LW+部署讲解等)
  • XAMPP运行没有创建桌面图标
  • ChatGPT被曝存在爬虫漏洞,OpenAI未公开承认
  • 2025年美国大学生数学建模竞赛赛前准备计划
  • 【技术杂谈】Arcgis调用天地图和卫星影像
  • Spring Web MVC 探秘
  • Nginx location 和 proxy_pass 配置详解
  • 后端开发流程学习笔记
  • Linux 高级路由与流量控制-用 tc qdisc 管理 Linux 网络带宽