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

最大正方形(前缀和)

在这里插入图片描述

归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝
唯有主动付出,才有丰富的果实获得收获!

在这里插入图片描述

题目描述

在一个 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

题外话

考场上不要盲目地追求正解!先全部写完暴力(可以和正解对拍),再慢慢研究正解。不能在一题上耗费过多时间,其实有时候你辛辛苦苦写了个正解,某个地方写挂了,那还不如人家乱打的暴力.
之后会出一篇对拍程序的博客

思路

枚举每一个点作为所选正方形的左上角的点,然后枚举正方形边长,逐一判断。

优化

边长倒着枚举,min(n,m)作为上界(因为正方形边长最大就是min(n,m)),枚举到当前的最大边长(不是最优解即使符合条件也是无济于事)。
逐一进行判断,一旦找到0立刻将双重循环break。
假如可行(即这个边长的正方形符合条件)则:

  1. 直接将最优解替换(由于下界为当前最大边长)
http://www.dtcms.com/a/104635.html

相关文章:

  • seq2seq
  • USB转串口数据抓包--Bus hound
  • 人工智能之数学基础:初等反射阵
  • C# Winform 入门(1)之跨线程调用,程序说话
  • 敏捷开发10:精益软件开发和看板kanban开发方法的区别是什么
  • Windows 下的多功能汉字笔顺学习与字帖生成软件
  • 三维重构 优质视频
  • 【TS学习】(15)分布式条件特性
  • RoboOS与RoboBrain:引领具身智能新时代的跨本体协作框架
  • SpringCloud概述
  • JMeter脚本录制(火狐)
  • 【多线程】线程池
  • 【开发问题记录】Docker Hub 执行 docker pull命令,拉取镜像失败/sudo docker run hello-world报错
  • 爬虫获取1688关键字搜索接口的实战指南
  • PyTorch量化进阶教程:第二章 Transformer 理论详解
  • [GESP202503 C++六级题解]:P11962:树上漫步
  • Docker学习--容器生命周期管理相关命令--docker rm 命令
  • 【word】导出批注具体到某段引用
  • 【一起来学kubernetes】31、Helm使用详解
  • Redis 02
  • 深入C++栈:从STL到底层实现的全面解析
  • TCP 三次握手与四次挥手深度解析(面试高频)
  • 百度热力图数据获取,原理,处理及论文应用25
  • SEO长尾关键词优化实战策略
  • webpack和vite的区别是什么
  • NAT穿越
  • Ollama+open-webui搭建私有本地大模型详细教程
  • HashMap 在 JDK 1.7 和 JDK 1.8 有什么区别
  • EasyExcel导出自动回显中文,读取自动转换码值(基于全局转换器与自定义注解)
  • 基于SpringBoot的高校学术交流平台