LeetCode 221.最大正方形

给定填充0和1的二维二进制矩阵,找到包含所有的最大矩形并返回其区域。 本题源自LeetCode ----------------------------------------------------------------- 思路: 用求直方图的最大面积求解。 遍历二维数组。统计当前行及以上的直方图,然后计算。保存最大面积。 直方图的最大面积:用一个堆栈做数据结构,如果堆栈为空就将下标压栈,如果栈顶元素大于要入栈的元素,就将所有比入栈元素大的弹出,计算面 阅读详情

在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。

示例:

输入:

1 0 1 0 0
1 0 1 1 1
1 1 1 1 1
1 0 0 1 0

输出: 4

tips:二维动态规划,递推方程:

dp[i][j]=min(dp[i-1][j-1],dp[i][j-1],dp[i-1][j])
class Solution {
public:
    int maximalSquare(vector<vector<char>>& matrix) {
		if(matrix.size()<=0) {
			return 0;
		}
		int max_edge=0;
		vector<vector<int>> dp(matrix.size(),vector<int>(matrix[0].size(),0));
		for (int i = 0; i < matrix.size(); i++)
		{
			for (int j = 0; j < matrix[0].size(); j++)
			{
				if(i==0||j==0) {
					if(matrix[i][j]=='1') {
						dp[i][j]=1;
						if(dp[i][j]>max_edge) {
							max_edge=dp[i][j];
						} 
					} else {
						dp[i][j]=0;
					}
				} else if(matrix[i][j]=='1') {
					int min_two=min(dp[i][j-1],dp[i-1][j]);
					dp[i][j]=min(min_two,dp[i-1][j-1])+1;
					if(dp[i][j]>max_edge) {
						max_edge=dp[i][j];
					}
				}
			}
			
		}
		return max_edge*max_edge;
    }
};
Java实现 LeetCode 221 最大正方形 221. 最大正方形 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 输出: 4 PS: 当我们判断以某个点为正方形右下角时最大的正方形时,那它的上方,左方和左上方三个点也一定是某个正方形的右下角,否则该点为右下角的正方形最大就是它自己了。这是定性的判断,那具体的最... 阅读详情

相关推荐

Leetcode 221:最大正方形(超详细的解法!!!)

在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 输出: 4 解题思路 这个问题很有意思,看上去和之前的问题Leetcode 85:最大矩形(超详细的解法!!!)非常类似,所以直接在之前问题上做一点修改即可。 class Solution: def m...

coordinate的博客 2168

python输出由*组成的正方形_Leetcode练习(Python):动态规划类:第221题:最大正方形:在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。...

题目:最大正方形:在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。思路:思路来源于官方,自己的思路把题做的太难了,也做不对,直接借助一个矩阵来存放最大的面积,设计程序需要一定的小技巧。程序:class Solution:def maximalSquare(self, matrix: List[List[str]]) -> int:if not matrix:re...

weixin_39523887的博客 257

Leetcode—221.Maximal Square 最大正方形

Given a 2D binary matrix filled with 0's and 1's, find the largest square containing only 1's and return its area. For example, given the following matrix: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1

Much effort, much prosperity. 2033

字节面试:在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积

1.题目 在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内,找到只包含 ‘1’ 的最大正方形,并返回其面积。 2.解释 这一题可用动态规划求解。 假设正方形右下角坐标为(i,j)。只需确定正方形边长len就可以唯一确定一个正方形。 使用动态规划求解,最重要的是找到状态转移方程 使用一个二维数组dp存储以(i,j)的右下标的正方形中,最大的正方形边长len: 逆向推: 假设最大正方形的右下角坐标为(i, j),则: 以(i-1, j)为右下角的正方形中最大正方形边长:dp[i,j]-1 以(i, j-1)为右

t18438605018的博客 2351

Vitis HLS 学习指南与实践教程

Vitis HLS 学习指南与实践教程摘要:本文系统介绍了AMD Vitis HLS工具及其应用。HLS技术将C/C++代码自动转换为硬件描述语言,显著提升FPGA开发效率(5-10倍)。文章对比了HLS与传统RTL设计的优势,包括抽象级别高、开发周期短、代码重用性强等特点。详细讲解了Vitis HLS工具链的核心功能,包括支持的C/C++特性(如任意精度数据类型)、开发流程(项目创建-代码编写-仿真-综合)以及关键优化技术(流水线、循环展开、数组分割等编译指示)。通过具体代码示例展示了HLS设计方法,为F

weixin_44707118的博客 1401

【Python实战解析】从数据爬取到房价预测:一个完整的数据科学项目流程拆解

本文详细拆解了一个完整的Python数据科学项目流程,从爬取长沙二手房数据到房价预测模型构建。通过实战案例,介绍了数据爬取、清洗、可视化及模型优化的关键技巧,帮助开发者掌握Python在数据分析中的应用,提升程序开发能力。

weixin_30379531的博客 411

221. 最大正方形 在一个由 ‘0‘ 和 ‘1‘ 组成的二维矩阵内,找到只包含 ‘1‘ 的最大正方形,并返回其面积。

最大正方形 在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内,找到只包含 ‘1’ 的最大正方形,并返回其面积。 class Solution { public: int maximalSquare(vector<vector<char>>& matrix) { int size1 = matrix.size(); if (size1 == 0) { return 0; } int.

人总是要有梦想的QAQ的博客 605

pwscf与wannier90 Hands-On实战训练(一)——费米面计算为例

系列文章目录 Quantum Espresso Hands-On实战训练(三)——DOS计算 文章目录系列文章目录计算过程pwscf直接得到等能面pwscf和wannier90得到等能面pwscf直接得到等能面1. scf2. nscf3. 后处理pwscf和wannier90得到等能面1. Kpoints2. scf3. nscf4. pw2wan及wannier90.x5. XCrySDen可视化 计算过程 pwscf直接得到等能面 pwscf和wannier90得到等能面 pwscf直接得到等能面

weixin_45973682的博客 5070

python正方形最大矩阵算法_Leetcode练习(Python):动态规划类:第221题:最大正方形:在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。...

题目:最大正方形:在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。思路:思路来源于官方,自己的思路把题做的太难了,也做不对,直接借助一个矩阵来存放最大的面积,设计程序需要一定的小技巧。程序:class Solution:def maximalSquare(self, matrix: List[List[str]]) -> int:if not matrix...

weixin_39540315的博客 415

AgentScope 2.0 扩展开发完全指南:从中间件到模型适配器的深度实践

本文系统讲解 AgentScope 2.0 框架的五大扩展机制,涵盖中间件系统的洋葱模型与钩子设计、ChatModelBase 基类与多供应商适配器开发、工作空间(本地/Docker/E2B)的抽象接口与生命周期管理、凭据工厂与 MCP 协议集成、以及工具协议与存储后端扩展。文中提供完整的架构图、代码示例与故障排查指南,帮助开发者快速掌握 AgentScope 的插件化扩展体系。

program哲学 295

[nlp] 自然语言理解基准 ATIS Snips

ATIS 4k 21 Intents(not include UNK) 120 SlotsSNIPS 13k 7 Intents(not include UNK) 72 SlotsATIS Benchmark (Intent Detection) | Papers With CodeSNIPS Benchmark (Intent Detection) | Papers With Code

心宝的博客 747

【中等】力扣算法题解析LeetCode221:最大正方形

题目要求在由0和1组成的二维矩阵中找到最大全1正方形的面积。使用动态规划优化空间,通过一维数组dp记录当前行各位置作为右下角时的最大边长。状态转移方程为dp[j] = min(dp[j-1], dp[j], pre) + 1(pre为左上角值),边界处理单独初始化首行首列。遍历时更新最大边长maxSide,最终返回maxSide²。Java实现代码已通过力扣测试,执行高效。

ylumwd的博客 840

OpenClaw人人养虾:接入Matrix

Matrix 是一个开放的去中心化通讯协议(Decentralized Communication Protocol),任何人都可以搭建自己的 Homeserver(家服务器)并与全球 Matrix 网络互联。OpenClaw 通过 Matrix Client-Server API 实现接入。

王国平的博客 526

力扣LeetCode:221 最大正方形

动态规划经典题目

weixin_73982851的博客 751

视图库对接系列(GA-T 1400)一、简单介绍

GA/T 1400《公安视频图像信息应用系统》 是我们需要参考看看的相关文档,里面有对应的标准和介绍,没有这个文档的话可以加群找我要。群的话 我放在最下面了。我们先简单想几个问题, 也就是这个协议主要干什么用的,为什么要有, 能做什么。

qq_37716298的博客 4283

Ubuntu零基础入门到精通【1.1讲】:什么是 Ubuntu?一文带你彻底搞懂!

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

**My Coding Family** 5720

LeetCode之221. 最大正方形

题目 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 输出: 4 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/maximal-square 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 分析 动态规划思想:将一个问题划分为N个子问题,逐个解析子问题,前一个子问题的输出作为下一个子问题

剑指Offer编程题 706

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

力扣 LeetCode 221. 最大正方形

【代码】力扣 LeetCode 221. 最大正方形。

qq_61504864的博客 348

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LeetCode 221最大正方形

LeetCode 221最大正方形 题目简述:在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 示例:输入: [10100101111111110010] \left[\begin{matrix}1 & 0 & 1 & 0 & 0 \\1 & 0 & 1 & 1 & 1 \\1 & 1 & 1 & 1 & 1\\1 & 0 & 0 & 1 &am

XBlog 290

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

LeetCode221——最大正方形

我的LeetCode代码仓:https://github.com/617076674/LeetCode 原题链接:https://leetcode-cn.com/problems/maximal-square/description/ 题目描述: 知识点:动态规划 思路:动态规划 状态定义: f(x, y) -------- 以(x, y)坐标为右下角的只含1的最大正方形面积 状...

清风阁 542

LeetCode 221. 最大正方形 | Python

使用动态规划,找出最长边,进而解决《221. 最大正方形》问题

"大梦三千秋的博客 1289

Leetcode 221-最大正方形

在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内,找到只包含 ‘1’ 的最大正方形,并返回其面积。提示:matrix[i][j] 为 ‘0’ 或 ‘1’

Helene1996的博客 773

力扣第221题“最大正方形”

本文详细解读了力扣第221题“最大正方形”,通过使用动态规划的方法高效地解决了这一问题,并提供了详细的解释和模拟面试问答。希望读者通过本文的学习,能够在力扣刷题的过程中更加得心应手。

10年数据\经营分析经验,现任大厂数据分析负责人 1231

golang力扣leetcode 221.最大正方形

221.最大正方形221.最大正方形题解代码 221.最大正方形 221.最大正方形 题解 题目:求数组中的最大正方形的面积 思路:动态规划 state: dp[i][j]:以i,j为右下角的正方形的最大边长 function: dp[i][j] = min(dp[i-1][j], dp[i-1][j-1], dp[i][j-1]) + 1 intialize: answer: 代码 func maximalSquare(matrix [][]byte) int { n, m := len(mat

清风 646

LeetCode221 最大正方形

LeetCode221 最大正方形 网址 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 class Solution { public: int maximalSquare(vector<vector<char>>& matrix) { /** dp[i][j]表示以第i行第j列为右下角所能构成的最大正方形边长, 则递推式为: dp[i][j] = 1 + min(dp[i-1][j-1],

J k l的博客 801

LeetCode 221.最大正方形 解法

/** LeetCode 221.最大正方形 形成2*2的小正方形,基础上 [ [a, b] [c, d(?)] ] 若b >= a && c >= a说明d所在的一个正方形可以在a的基础上,扩充一行一列,变为长宽为a+1的正方形 否则d为Min(b, c)的最小值为长宽的正方形,增加一行一列,变为长宽为Min(b, a)+1的正方形 */ func maximalSquare(matrix [][]byte) int { rowLen := len(matrix) .

NLSQQ的博客 299
上一篇: LeetCode 15.三数之和
下一篇: LeetCode 611. 有效三角形的个数
wenkun97
博客等级 码龄10年 15粉丝 139原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值