leetcode221.最大正方形
最大正方形
可以使用动态规划降低时间复杂度。用 dp(i,j) 表示以 (i,j)为右下角,且只包含 111 的正方形的边长最大值。能计算出所有 dp(i,j)的值,那么其中的最大值即为矩阵中只包含 111 的正方形的边长最大值,其平方即为最大正方形的面积。
如果该位置的值是 0,则 dp(i,j)=0,因为当前位置不可能在由 111 组成的正方形中;
如果该位置的值是 111,则 dp(i,j)的值由其上方、左方和左上方的三个相邻位置的 dp值决定。具体而言,当前位置的元素值等于三个相邻位置的元素中的最小值加 111,状态转移方程如下:
dp(i,j)=min(dp(i−1,j),dp(i−1,j−1),dp(i,j−1))+1
其中1277. 统计全为 1 的正方形子矩阵的官方题解给出了详细的证明。
此外,还需要考虑边界条件。如果 i 和 j中至少有一个为 0,则以位置 (i,j)为右下角的最大正方形的边长只能是 1,因此 dp(i,j)=1。
#include<bits/stdc++.h>
using namespace std;
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public:int maximalSquare(vector<vector<char>>& matrix) {int m = matrix.size();int n = matrix[0].size();int dp[m][n];for (int i = 0; i < m; ++i) {for (int j = 0; j < n; ++j) {dp[i][j] = -1;}}int ans = 0;for (int i = 0; i < m; ++i) {for (int j = 0; j < n; ++j) {if (matrix[i][j] == '0'){dp[i][j] = 0;continue;}if (i == 0 || j == 0){dp[i][j] = 1;}else{dp[i][j] = min(min(dp[i][j - 1], dp[i - 1][j - 1]), dp[i - 1][j]) + 1;}ans = max(ans, dp[i][j]);}}return ans * ans;}
};
//leetcode submit region end(Prohibit modification and deletion)int main(){Solution s;vector<vector<char>> num = {{'1', '0', '1', '0', '0'}, {'1', '0', '1', '1', '1'}, {'1', '1', '1', '1', '1'}, {'1', '0', '0', '1', '0'}};int a = s.maximalSquare(num);cout<<(a);return 0;
}
相关文章:
leetcode221.最大正方形
最大正方形 可以使用动态规划降低时间复杂度。用 dp(i,j) 表示以 (i,j)为右下角,且只包含 111 的正方形的边长最大值。能计算出所有 dp(i,j)的值,那么其中的最大值即为矩阵中只包含 111 的正方形的边长最大值,其平方即为最大正方形的面积。 …...
低代码技术这么香,如何把它的开发特点发挥到极致?
前言 什么是低代码技术? 低代码是一种可视化软件开发方法,通过最少的编码更快地交付应用程序。图形用户界面和拖放功能使开发过程的各个方面自动化,消除了对传统计算机编程方法的依赖。 文章目录 前言低代码平台怎么选?用友Yonbu…...
drawio简介以及下载安装
drawio简介以及下载安装 drawio是一款非常强大的开源在线的流程图编辑器,支持绘制各种形式的图表,提供了 Web端与客户端支持,同时也支持多种资源类型的导出。 访问网址:draw.io或者直接使用app.diagrams.net直接打开可以使用在线版…...
Sql Server 数据库中的所有已定义的唯一约束 (列名称 合并过了)
查询Sql Server Database中的唯一约束 with UniqueBasic as (SELECTtab.name AS TableName, -- 表名称idx.name AS UniqueName, -- 唯一约束的名称col.name AS UniqueFieldName -- 唯一约束的表字段FROMsys.indexes idxJOIN sys.index_columns idxColON (idx.object_id idxCo…...
elasticsearch (六)filebeat 安装学习
filebeat 安装:文件节拍快速入门:安装和配置 |文件节拍参考 [7.17] |弹性的 (elastic.co) 解压缩后,以配置nginx日志为例。 Nginx module | Filebeat Reference [7.17] | Elastic filebeat 配置中, - module: nginx access: …...
算法通关村第一关|青铜|链表笔记
1.理解 Java 如何构造出链表 在 Java 中,我们创建一个链表类,类中应当有两个属性,一个是结点的值 val ,一个是该结点指向的下一个结点 next 。 next 通俗讲是一个链表中的指针,但是在链表类中是一个链表类型的引用变量…...
【记录】使用Python读取Tiff图像的几种方法
文章目录 PIL.Imagecv2gdal 本文总结了使用 PIL Image, cv2, gdal.Open三种python package 读取多通道Tiff格式遥感影像的方法。 PIL.Image PIL对Tiff只支持两种格式的图像: 多通道8bit图像单通道int16, int32, float32图像 多通道多bit的tiff图像PIL不支持读取…...
JOSEF约瑟 多档切换式漏电(剩余)继电器JHOK-ZBL1 30/100/300/500mA
系列型号: JHOK-ZBL多档切换式漏电(剩余)继电器(导轨) JHOK-ZBL1多档切换式漏电(剩余)继电器 JHOK-ZBL2多档切换式漏电(剩余)继电器 JHOK-ZBM多档切换式漏电…...
Linux部署kubeedge 1.4
文章目录 一、机器信息二、环境准备(所有节点操作)2.1. 修改主机名2.2. 开启路由转发2.3.安装Docker(所有节点)2.4.部署K8S集群(单机版,云端节点) 2.5.安装Mosquitto(只在边缘节点安装)三、安装kubeedge 1.…...
第一章习题
文章目录 x ( t ) j e j w 0 t x(t)je^{jw_0t} x(t)jejw0t x [ n ] j e j w 0 n x[n]je^{jw_0n} x[n]jejw0n 求基本周期: T 2 Π w 0 T\frac{2Π}{w_0} Tw02Π 对x[n],T为有理数才算 1、求信号x(t)2cos(10t1)-sin(4t-1)的基波周期 2 Π 10 Π 5 \frac{2…...
nvm、node、npm解决问题过程记录
在Windows10如何降级Node.js版本:可以尝试将Node.js版本降级到一个较旧的版本,以查看问题是否得以解决。可以使用Node Version Manager (nvm) 来轻松切换Node.js版本,具体完整步骤: 首先,需要安装Node Version Manager…...
Linux- DWARF调试文件格式
基本概念 DWARF是一个用于在可执行程序和其源代码之间进行关联的调试文件格式。当开发者使用调试编译选项(例如,使用gcc时的-g标志)编译程序时,编译器会生成这种格式的调试信息。这些信息在后续的调试过程中非常有用,…...
软件工程第六周
软件体系结构概述 体系结构:一种思想,而框架就是思想的实现,设计模式就是根据某一特殊问题实现的框架。 体系结构:体系结构是软件系统的高级结构。它定义了系统的主要组成部分,以及这些部分之间的关系和交互方式。 框…...
node+pm2安装部署
1、安装node 下载node安装包: wget https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-x64.tar.xz 解压: tar -xvJf node-v14.17.0-linux-x64.tar.xz 配置环境变量,在/etc/profile文件最后添加以下脚本: export PATH$P…...
大数据学习(11)-hive on mapreduce详解
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博>主哦&#x…...
MyBatis基础之自动映射、映射类型、文件注解双配置
文章目录 自动映射原理jdbcType同时启用配置文件和注解两种配置方式 自动映射原理 在 MyBatis 的配置文件(settings 元素部分)中,有一个 autoMappingBehavior 配置,其默认值为 PARTIAL ,表示 MyBatis 会自动映射&…...
8、docker 安装 nginx
1、下载镜像 docker pull nginx 2、本机创建目录 1)创建nginx挂载目录 mkdir /usr/local/nginx 2)进入nginx目录 cd /usr/local/nginx 3)创建 www和logs目录 mkdir -p www logs 3、创建nginx容器 此容器用于复制配置文件,复…...
关于Skywalking Agent customize-enhance-trace对应用复杂参数类型取值
对于Skywalking Agent customize-enhance-trace 大家应该不陌生了,主要支持以非入侵的方式按用户自定义的Span跟踪对应的应用方法,并获取数据。 参考https://skywalking.apache.org/docs/skywalking-java/v9.0.0/en/setup/service-agent/java-agent/cust…...
手机路径、Windows路径知识及delphiXE跨设备APP自动下载和升级
手机路径、Windows路径知识 及delphiXE跨设备APP自动下载和升级 一、APP安装程序文件版本和权限信息 1、运行时动态调用Android apk的AndroidManifest.xml获取versionName 2、运行时动态调用IOS ipa的info.plist获取CFBundleVersion (和entitlements)…...
GitLab 502问题解决方案
由于最近 gitlab 切换到另一台服务器上部署的 gitlab 后,经常出现 502。平时重启 gitlab 后都能解决,今天突然重启多次后都还是 502(重启日志是正常的),遂通过 gitlab-ctl tail 查看日志进行排查。 gitlab-ctl tail通…...
selenium打开火狐浏览器
项目上需求为:甲方OA 系统是IE系统,需要从IE系统点个按钮打开火狐浏览器单点登录跳转到我们的系统 前期解决方案为:打开浏览器就行了,然后就用的是打开本地浏览器,但是由于B/S架构,有别人远程访问我的ip来…...
多标签分类论文笔记 | ML-Decoder: Scalable and Versatile Classification Head
个人论文精读笔记,主要是翻译心得,欢迎旁观,如果有兴趣可以在评论区留言,我们一起探讨。 Paper: https://arxiv.org/pdf/2111.12933.pdf Code: https://github.com/Alibaba-MIIL/ML_Decoder 文章目录 0. 摘要1. 介绍2. 方法2.1 Ba…...
修改http_charfinder.py使能在python311环境中运行
需要修改两个函数,第一个是init函数,修改如下: async def init(loop, address, port): # <1> # app web.Application(looploop) # <2> # app.router.add_route(GET, /, home) # <3> app web.Application(…...
蓝桥杯(跳跃 C++)
思路: 1、根据题目很容易知道可以用深度搜索、广度搜索、动态规划的思想解题。 2、这里利用深度搜素,由题目可知,可以往九个方向走。 3、这里的判断边界就是走到终点。 #include<iostream> using namespace std; int max1 0; int …...
08 | Jackson 注解在实体里面如何应用?常见的死循环问题如何解决?
我们用 Spring Boot 里面默认集成的 fasterxml.jackson 加以说明,这看似和 JPA 没什么关系,但是一旦我们和 Entity 一起使用的时候,就会遇到一些问题,特别是新手同学,我们这一课时详细介绍一下用法。先来跟着我了解一下…...
JavaScript—获取当前时间 并转化为yyyy-MM-dd hh:mm:ss格式
JavaScript—获取当前时间 并转化为yyyy-MM-dd hh:mm:ss格式 每次项目都需要用到时间戳格式,可以封装成一个方法 下次直接CV过去 const timestampPadStart=(str)=>{str=String(str);return str.padStart(2,0)...
OpenHarmony创新赛丨报名倒计时,超强秘籍带你直通大奖!
OpenHarmony创新赛报名倒计时开始啦! 设于开放原子全球开源大赛下的OpenHarmony创新赛,目前正在如火如荼地进行赛事招募中!这次大赛围绕创新应用、商显行业、金融行业三大赛题,邀请来自企业、个人、高校师生等各界群体的优秀开发者…...
Linux高性能服务器编程 学习笔记 第十四章 进程池和线程池
动态创建子进程或子线程的缺点: 1.动态创建进程或线程比较耗时,这将导致较慢的客户响应。 2.动态创建的子进程或子线程通常只用来为一个客户服务(除非我们做特殊处理),这将导致系统上产生大量的进程或线程,…...
微信小程序/vue3/uview-plus form兜底校验
效果图 代码 <template><u-form :model"form" ref"formRole" :rules"rules"><u-form-item prop"nickname"><u-input v-model"form.nickname" placeholder"姓名" border"none" /&…...
Photoshop 2024正式发布!内置最新PS AI,创意填充等功能无限制使用!
PS正式版目前更新到了2024,版本为25.0。 安装教程 1、下载得到安装包后,先解压。鼠标右键,【解压到当前文件夹】 2、双击 Set-up 开始安装 3、这里可以更改安装位置。如果C盘空间不够大,可以把它安装到C盘以外。更改好后&#x…...
深圳知名网站建设平台/网络营销的优势有哪些
将汇编翻译成C了, 累死了。。。应项目要求靠着一个汇编写的自定义协议源代码 硬是用C 实现。。。头大了。。// 模块功能: 实现STM32与PIC16F57串行通信。#include "PIC16F57_CM.h"#include "Delay.h"/*****************************…...
网站建设心得小结/百度手机网页
导 语烧TS16,似乎成了业内的全国性症结,整套自观系统里,数它脆弱。好一好,能用三四年;地网不达标的机场,刚换的新的,一个雷,别的不烧,TS16准烧。其中多因为它的供电模块故…...
郑州网站托管公司/网站设计的流程
http://www.liangjing.org/qiyejianzhan/Ch/Net_Index.html http://www.phpweb.net/index.php转载于:https://www.cnblogs.com/liulf/archive/2011/04/01/2002745.html...
wordpress可视化编辑器插件/seo软件优化
和平精英巡查员等级由什么决定?在经由申请并顺利通过成为巡查团中的一员之后玩家将可以义务地参与进视频巡查工作中,而巡查的贡献和表现将会影响玩家巡查员等级的评级,如果无法确保足够的活跃度和准确率不仅拿不到专属奖励而且还有可能被降级…...
重庆学校网站建设/东莞百度快速排名优化
FillOval 和DrawOval 用来填充和绘制椭圆。下面例子显示椭圆的用法。 private void Ovals() { Color redColor new Color(0x96ff0000, true); Color greenColor new Color(0x00ff00); AffineTransform mat1; mat1 new AffineTransform(); mat1.Translate(30, 40); mat1.Rota…...
做网站注册的商标类别/深圳网络推广案例
2019独角兽企业重金招聘Python工程师标准>>> 你英语四级过了吗?功夫熊猫2看了吗?去除停用词后,功夫熊猫2使用了816个英语单词,你会说很简单吧,别急,我给你分析一下,这些单词中有125个…...