436.Maximal Square-最大正方形(中等题)
来源:互联网 发布:获取json对象的key 编辑:程序博客网 时间:2024/06/03 22:44
最大正方形
题目
在一个二维01矩阵中找到全为1的最大正方形
样例
1 0 1 0 0
1 0 1 1 1
1 1 1 1 1
1 0 0 1 0
返回 4题解
定义相同大小的辅助数组res,且第一例和第一行元素与原数组相同。从res[1][1]开始,如果原数组matrix[i][j]为0则表示当前点不存在正方形,即边长为0。如果matrix[i][j]为1则表示至少存在边长为1的正方形,此时考量res[i][j]的左元素,左上角元素和上面的元素,取最小边长+1最为res[i][j]的边长。保存最大边长,最后再返回面积即可。
public class Solution { /** * @param matrix: a matrix of 0 and 1 * @return: an integer */ public int maxSquare(int[][] matrix) { int ans = 0; int n = matrix.length; int m; if(n > 0) { m = matrix[0].length; } else { return ans; } int [][]res = new int [n][m]; for(int i = 0; i < n; i++) { res[i][0] = matrix[i][0]; ans = Math.max(res[i][0] , ans); for(int j = 1; j < m; j++) { if(i > 0) { if(matrix[i][j] > 0) { res[i][j] = Math.min(res[i - 1][j],Math.min(res[i][j-1], res[i-1][j-1])) + 1; } else { res[i][j] = 0; } } else { res[i][j] = matrix[i][j]; } ans = Math.max(res[i][j], ans); } } return ans*ans; }}
Last Update 2016.11.19
0 0
- 436.Maximal Square-最大正方形(中等题)
- LeetCode 221. Maximal Square(最大正方形)
- 221. Maximal Square (最大正方形)
- Maximal Square 最大的正方形
- [Leetcode] Maximal Square 最大正方形
- **[Lintcode]Maximal Square 最大正方形
- LeetCode OJ 之 Maximal Square (最大的正方形)
- Maximal Square 面积最大的正方形
- Leetcode—221.Maximal Square 最大正方形
- [LeetCode] 01矩阵中最大正方形 Maximal Square
- [leetcode] 221 Maximal Square(最大全1正方形 &动态规划)
- [leetcode] 221 Maximal Square(最大全1正方形 &动态规划)
- LeetCode 221 Maximal Square (最大子正方形 dp)
- leetcode 221. Maximal Square 最大正方形面积 + DP
- 最大正方形 (Largest Square)
- Medium 221题 Maximal Square
- Maximal Square
- Maximal Square
- Android之布局属性
- 线性回归
- Python web 框架webpy 学习体验-人生苦短我用Python为鬼叔代言
- vim命令行及低行一些常用指令
- 第十二周OJ——十进制转化为二进制
- 436.Maximal Square-最大正方形(中等题)
- Cocos2d-x开发实例:使用Lambda 表达式
- NOIP2016 秀逗记&口胡题解
- Android TextView 字体颜色分段显示
- 聊聊Android优秀的图片加载缓存的开源框架?UIL、Glide、Picasso
- ubuntu/linux 下Java环境变量配置
- 利用sublime text3 + OmniMarkupPreviewer + CSS 搭建的文档编辑工具
- LightOJ-1132-矩阵快速幂,math
- IOS app 本地测试