【最大正方形】

题目描述

在一个 n × m n\times m n×m 的只包含 0 0 0 1 1 1 的矩阵里找出一个不包含 0 0 0 的最大正方形,输出边长。

输入格式

输入文件第一行为两个整数 n , m ( 1 ≤ n , m ≤ 100 ) n,m(1\leq n,m\leq 100) n,m(1n,m100),接下来 n n n 行,每行 m m m 个数字,用空格隔开, 0 0 0 1 1 1

输出格式

一个整数,最大正方形的边长。

样例 #1

样例输入 #1

4 4
0 1 1 1
1 1 1 0
0 1 1 0
1 1 0 1

样例输出 #1

2

代码如下:

int main() {int n, m;cin >> n >> m;vector<vector<int>> matrix(n, vector<int>(m)); // 初始化二维数组for (int i = 0; i < n; ++i) {for (int j = 0; j < m; ++j) {cin >> matrix[i][j];}}// dp[i][j]表示以matrix[i][j]为右下角的正方形的最大边长vector<vector<int>> dp(n, vector<int>(m, 0)); int maxLen = 0;for (int i = 0; i < n; ++i) {for (int j = 0; j < m; ++j) {if (i == 0 || j == 0 || matrix[i][j] == 0) { // 边界条件,如果是第一行或者第一列,或者matrix[i][j] == 0,说明以当前位置为右下角不可能构成正方形dp[i][j] = matrix[i][j]; }else {// 以matrix[i][j]为右下角的正方形的最大边长取决于左边、上边、左上边的正方形的最大边长,// 为什么取最小值,因为只有三个边都是1,才能构成一个正方形dp[i][j] = min(dp[i - 1][j - 1], min(dp[i][j - 1], dp[i - 1][j])) + 1; }maxLen = max(maxLen, dp[i][j]); // 更新最大边长}}cout << maxLen << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/792639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解锁行业潜力:国内十大低代码平台全面盘点

在数字化转型的浪潮中&#xff0c;低代码开发平台以其快速开发、简化流程和降低技术门槛的优势&#xff0c;成为企业信息化建设的重要推手。 本篇文章将为您盘点十个低代码平台有&#xff1a;Zoho Creator、明道云、腾讯云低代码平台、华为云Astro、金蝶云苍穹、用友YonBuilder…

【ARM 嵌入式 C 文件操作系列 20.1 -- 从 A文件的 n 行开始 拷贝 m行到 B文件中】

请阅读【嵌入式开发学习必备专栏 】 文章目录 文件行拷贝根据行数大小设定拷贝方法拷贝每行固定字符个数的方式 文件行拷贝 从文件 a 中从第 n 行开始拷贝 m 行到文件 b 的函数&#xff0c;将需要使用标准库函数来读取和写入文件。以下是一个 file_copy_lines 函数实现&#x…

DO、DTO、BO、VO、PO、DAO、POJO

目录 一、DO、DTO、BO、VO、PO、DAO、POJO的概念 二、DO、DTO、BO、VO具体如何使用&#xff1f;代码详细说明 三、有没有其他类似的概念&#xff0c;比如POJO&#xff08;Plain Old Java Object&#xff09;&#xff1f;它们有什么区别&#xff1f; 四、在实际项目中&#…

[lesson05]引用的本质分析

引用的本质分析 引用的意义 引用作为变量别名而存在&#xff0c;因此在一些场合可以代替指针 引用相对于指针来说具有更好的可读性和实用性 注意&#xff1a; 函数中的引用形参不需要进行初始化&#xff01;&#xff01; 特殊的引用 const引用 在C中可以声明const引用 cons…

可能是最便宜的姿态传感器,国产三轴加速度计SC7A20

可能是最便宜的姿态传感器 三轴检测 批量参考价格&#xff1a;整盘单价&#xff1a;1.242&#xff0c;一个包装10K&#xff0c;希望厂家能出点数量少的包装&#xff0c;这一盘太多了&#xff1a;&#xff09; 特点 宽电压范围 1.71V-3.6V 1.8V 兼容数字 IO 口 低功耗模式下…

若依项目名、包名修改器

Updater.java import java.io.File; import java.util.*;public class Updater {public static void main(String[] args) {String projectPath"D:\\workspace\\idea\\RuoYi-Cloud-Plus-2.X";updateNames(new File(projectPath));}//需要改名的目录名称&#xff08;…

GNURadio 软件在windows环境下安装

一、软件下载 网址&#xff1a;InstallingGR - GNU Radio 我已经下载的软件安装包&#xff0c;radioconda-2024.01.26-Windows-x86_64.rar 网址&#xff1a;https://download.csdn.net/download/weixin_37728585/89082238 二、安装过程 所有用户均可以使用。 选择安装路径&a…

一文彻底搞清 Iterator(遍历器)概念及用法

目录 一、由来及意义 二、具体实现流程 三、具有默认 Iterator 接口的数据结构 四、调用 Iterator 接口的场合 五、总结 一、由来及意义 Javascript中表示“集合”的数据结构&#xff0c;主要是 Array、Object、Map、Set 这四种数据集合&#xff0c;除此之外&#xff0c;…

每日一题 --- 删除字符串中的所有相邻重复项[力扣][Go]

删除字符串中的所有相邻重复项 题目&#xff1a;1047. 删除字符串中的所有相邻重复项 给出由小写字母组成的字符串 S&#xff0c;重复项删除操作会选择两个相邻且相同的字母&#xff0c;并删除它们。 在 S 上反复执行重复项删除操作&#xff0c;直到无法继续删除。 在完成所…

JVM基础二——类的生命周期

加载阶段 &#xff1a; 连接阶段&#xff1a; 初始化阶段&#xff1a; 总结&#xff1a;

【Linux】SSH协议应用

SSH协议 SSH简介实现OpenSSH ssh中的四个文件~/.ssh文件路径实验解析 SSH 简介 SSH&#xff08;secure shell&#xff09;只是一种协议&#xff0c;存在多种实现&#xff0c;既有商业实现&#xff0c;也有开源实现。本文针对的实现是OpenSSH&#xff0c;它是自由软件&#xf…

React三大组件--ref

1.定义&#xff1a;组件内的标签可以定义ref属性来标识自己。 2.使用ref的三种方法 字符串形式的ref &#xff08;这个写法会慢慢替换掉&#xff0c;所以尽量不要写字符串形式&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta cha…

第18讲:数据在内存中的存储

⽬录 1. 整数在内存中的存储 2. ⼤⼩端字节序和字节序判断 3. 浮点数在内存中的存储 ——————————————————————————————————————————— 1. 整数在内存中的存储 在讲解操作符的时候&#xff0c;我们就讲过了下⾯的内容&#x…

力扣热题100_链表_21_合并两个有序链表

文章目录 题目链接解题思路解题代码 题目链接 21. 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 示例…

jupyter Notebook 默认路径修改

1. anaconda prompt 中运行 jupyter notebook --generate-config 命令&#xff0c;将在 C:\Users\Think\.jupyter文件下生成 jupyter_notebook_config.py 文件。 2.在jupyter_notebook_config.py 文件中&#xff0c;找c.NotebookApp.notebook_dir 这个变量&#xff0c; (1)若…

Solana 线下活动回顾|多方创新实践,引领 Solana“文艺复兴”新浪潮

Solana 作为在过去一年里实现突破式飞跃的头部公链&#xff0c;究竟是如何与 Web3 行业共振&#xff0c;带来全新的技术发展与生态亮点的呢&#xff1f;在 3 月 24 日刚结束的「TinTin Destination Moon」活动现场&#xff0c;来自 Solana 生态的的专家大咖和 Web3 行业的资深人…

Java生产者消费者模式(等待唤醒机制)

1.生产者消费者模式 生产者消费者模式是一个十分经典的多线程协作的模式&#xff0c;主要用于解决多线程间的同步问题。它描述了两个类之间的协作&#xff1a;生产者和消费者。生产者负责生成数据&#xff08;或称为“产品”&#xff09;&#xff0c;而消费者负责消费这些数据…

LeetCode - 移除石子使总数最小

1962. 移除石子使总数最小 当我看到这道题目的时候&#xff0c;第一时间想到的是&#xff1a;while循环 sort&#xff0c;时间复杂度 k*nlogn。题目要求执行k次操作后&#xff0c;剩下狮子的最小总数&#xff0c;我们是否可以考虑维护一个堆呢&#xff1f;堆顶值最大&#xff…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《台风灾害下考虑多类型故障不确定性的源网荷协同弹性提升模型》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Leetcode_2两数相加

文章目录 前言一、两数相加1.1 问题描述1.2 解法一&#xff1a;分别将链表转为数字&#xff0c;然后相加1.3 代码实现1.4 解法二&#xff1a;分别将对应位置数字相加1.5 代码实现 二、使用步骤1.引入库2.读入数据 前言 链表是一种物理内存非连续存储&#xff0c;非顺序的线性数…