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

示例:

输入: 1 0 1 0 0
1 0 1 1 1
1 1 1 1 1
1 0 0 1 0输出: 4解法:判断以某个点为正方形右下角时最大的正方形时,那它的上方,左方和左上方三个点也一定是某个正方形的右下角,否则该点为右下角的正方形最大就是它自己了。我们知道,该点为右下角的正方形的最大边长,最多比它的上方,左方和左上方为右下角的正方形的边长多1,最好的情况是是它的上方,左方和左上方为右下角的正方形的大小都一样的,这样加上该点就可以构成一个更大的正方形。但如果它的上方,左方和左上方为右下角的正方形的大小不一样,合起来就会缺了某个角落,这时候只能取那三个正方形中最小的正方形的边长加1了。
class Solution {
public:int maximalSquare(vector<vector<char>>& matrix) {if(matrix.empty() || matrix[0].empty()) return 0;int n=matrix.size(),m=matrix[0].size();int ans=0;int dp[n][m];memset(dp,0,sizeof(dp));for(int i=0;i<n;i++){if(matrix[i][0]=='1'){dp[i][0]=1;ans=1;}}for(int i=0;i<m;i++){if(matrix[0][i]=='1'){dp[0][i]=1;ans=1;}}for(int i=1;i<n;i++){for(int j=1;j<m;j++){if(matrix[i][j]=='1')dp[i][j]=min(dp[i-1][j-1],min(dp[i-1][j],dp[i][j-1]))+1;ans=max(ans,dp[i][j]);}}return ans*ans;}
};

转载于:https://www.cnblogs.com/jkzr/p/10610105.html

LeetCode 最大正方形相关推荐

  1. LeetCode 996. 正方形数组的数目(回溯+剪枝)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个非负整数数组 A,如果该数组每对相邻元素之和是一个完全平方数,则称这一数组为正方形数组. 返回 A 的正方形排列的数目.两个排列 A1 和 A2 ...

  2. LeetCode 491. 递增子序列(回溯+判重剪枝)

    1. 题目 给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2. 示例: 输入: [4, 6, 7, 7] 输出: [[4, 6], [4, 7], [4, 6, 7] ...

  3. LeetCode 47. 全排列 II(回溯+搜索剪枝)

    文章目录 1. 题目信息 2. 解题 1. 题目信息 给定一个可包含重复数字的序列,返回所有不重复的全排列. 示例:输入: [1,1,2] 输出: [[1,1,2],[1,2,1],[2,1,1] ] ...

  4. LeetCode 46. 全排列(回溯)

    文章目录 1. 题目信息 2. 解题 2.1 利用hash map解决 2.2 改用bool数组判断是否出现过 1. 题目信息 给定一个没有重复数字的序列,返回其所有可能的全排列. 示例:输入: [1 ...

  5. 2020年拼多多校招面试题及答案-最全最新-持续更新中(2)

    大家好我是好好学习天天编程的天天 一个整天在互联网上种菜和砍柴的程序员~ 2020年拼多多校招面试题及答案-最全最新-持续更新中(2) 2020年拼多多校招面试题一面 2020年拼多多校招面试题一面- ...

  6. leetcode 593. Valid Square | 593. 有效的正方形(Java)

    题目 https://leetcode.com/problems/valid-square/ 题解 因为顺序未知,所以可能有四种组合情况.(check时,以四个点顺时针排列为待判断的正方形) clas ...

  7. leetcode 221. Maximal Square | 221. 最大正方形(优化的暴力解法+动态规划解法)

    题目 https://leetcode.com/problems/maximal-square/ 题解 方法1:最暴力解 O((m*n)^2) public class Solution {publi ...

  8. LeetCode 2013. 检测正方形(字典)

    文章目录 1. 题目 2. 解题 2.1 超时 2.1 改进 1. 题目 给你一个在 X-Y 平面上的点构成的数据流.设计一个满足下述要求的算法: 添加 一个在数据流中的新点到某个数据结构中.可以添加 ...

  9. LeetCode 473. 火柴拼正方形(回溯)

    文章目录 1. 题目 2. 解题 1. 题目 还记得童话<卖火柴的小女孩>吗?现在,你知道小女孩有多少根火柴,请找出一种能使用所有火柴拼成一个正方形的方法. 不能折断火柴,可以把火柴连接起 ...

最新文章

  1. 「版权流氓」终结者:6天时间,堆出687亿段旋律
  2. Chrome 私人珍藏-stylus插件实现个性化百度界面定制
  3. 量子计算机模型取,Grover算法在单道量子计算模型下的实现
  4. 关于Jdk7与Jdk8对Collections进行分组的区别
  5. 文件管理器android实现,Android开发之简单文件管理器实现方法
  6. 外部表不是预期的格式_超详细的CMDB介绍--概念、架构、模型、表设计及开源选择...
  7. JVM调优:-XX:+PrintCommandLineFlags 查看程序使用的默认JVM参数
  8. python3进阶开发-第一个仿博客园的项目(1)
  9. php 自动切图,前端工程师技能之photoshop巧用系列扩展篇自动切图
  10. php文件下载不完整,求帮看下这段PHP下载MP4文件的有关问题,文件下载不完整
  11. js return 闭包为null_js 基础知识总结
  12. ORACLE客户端连接
  13. linux虚拟机模板部署模板,创建和部署基于 Linux 的虚拟机模板
  14. java常用类objet,Java基础-常用API-Object类
  15. 卫生纸玫瑰花折法5步_手工教程:做一个漂亮的玫瑰花捧花,用折纸表达我喜欢你...
  16. ClockworkMod Recovery实现应用android一键化在线卡刷升级
  17. 简单实现RPC/RMI框架
  18. 电脑删除的文件去哪了?删除的数据恢复,居然有3个方法…
  19. Python新书上市,强烈推荐!《Python网络数据爬取及分析从入门到精通(爬取篇)》导读
  20. unity 四元数旋转各元素值的计算方法

热门文章

  1. 字符串 hash 唯一数字_【数字课堂】酒妹带你了解“身份认证技术”
  2. linux运维和3dmax哪个简单,牛逼运维常用的工具系列-2
  3. java里面有控制器吗_mvc中 控制器部分可以使用Javabean完成吗?为什么?
  4. mysql使用IS NULL查询null值
  5. dockerq启动报错(iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9876 -j DNAT --t
  6. html5属性详解,HTML5中的download属性详解
  7. python中感叹号_C#中感叹号(!) 的作用总结
  8. 没想到,Git居然有3种“后悔药”!
  9. ASP.NET MVC的过滤器笔记
  10. NET Core入门笔记