221. Maximal Square
来源:互联网 发布:nvidia cuda windows 编辑:程序博客网 时间:2024/06/08 02:16
1、题目描述
输入一个由0和1组成的2D的矩阵,返回最大的由1组成的正方形面积。
2、思路
动态规划。
用v[i][j]记录在第j列,从第i行的元素起,往上数,有多少个连着的1.
现在用i行的这一小段1来形成正方形。
遍历第j列到第0列,实时更新最短的1竖列的长度xiao,同时可以更新正方形的变长r,同时更新最大面积。
3、代码
int maximalSquare(vector<vector<char>>& matrix) { int n = matrix.size(); if(n==0) return 0; int m = matrix[0].size(); vector<vector<int>>v(n,vector<int>(m,0)); for(int i=0;i<n;i++) for(int j=0;j<m;j++) v[i][j] = matrix[i][j]-'0'; int ans = 0; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(v[i][j]>0&&i>0) v[i][j]+=v[i-1][j]; int xiao = v[i][j]; for(int h = j;h>=0;h--){ xiao = min(xiao,v[i][h]); int r = min(xiao,j-h+1); ans=max(ans,r*r); } } } return ans; }
阅读全文
0 0
- 221.Maximal Square
- [leetcode] 221.Maximal Square
- 【leetcode】221. Maximal Square
- [LeetCode]221. Maximal Square
- leetcode 221. Maximal Square
- 221. Maximal Square LeetCode
- 221. Maximal Square
- 221. Maximal Square
- LeetCode 221. Maximal Square
- 221. Maximal Square
- LeetCode *** 221. Maximal Square
- 221. Maximal Square
- LeetCode-221.Maximal Square
- leetcode.221. Maximal Square
- 221. Maximal Square
- Leetcode 221. Maximal Square
- 221. Maximal Square
- 221. Maximal Square
- Bad Hair Day POJ
- Kotlin官网学习(一)基础
- Python 局部变量 全局变量 匿名函数 迭代器
- 把输入数据类型封装成一个类
- 多对多关系映射
- 221. Maximal Square
- H5data-
- linux下 mysql数据库的备份和还原
- Java 通过ssh连接lunix,执行语句
- Markdown语法
- 使用二级缓存
- Valid Anagram
- 比较难理解的部分:Thread-fork/Data/singal(八)
- 中欧MiniMBA-建设高效团队