221. Maximal Square
来源:互联网 发布:卓奇电脑网络服务中心 编辑:程序博客网 时间:2024/06/09 15:52
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 01 0 1 1 11 1 1 1 11 0 0 1 0Return 4.Credits:Special thanks to @Freezen for adding this problem and creating all test cases.
代码如下:
class Solution { public: int maximalSquare(vector<vector<char>>& matrix) { int max_side = 0; int row = matrix.size(); if (row == 0) return max_side; int col = matrix[0].size(); vector<vector<int>> visit(row, vector<int>(col, 0)); for (int i = 0; i < row; i++) { if (matrix[i][0] == '1') { visit[i][0] = 1; max_side = 1; } } for (int j = 0; j < col; j++) { if (matrix[0][j] == '1') { visit[0][j] = 1; max_side = 1; } } for (int i = 1; i < row; i++) { for (int j = 1; j < col; j++) { if (matrix[i][j] == '1') { visit[i][j] = min(visit[i - 1][j], min(visit[i][j - 1], visit[i - 1][j - 1])) + 1; max_side = max(visit[i][j], max_side); } } } return max_side * max_side; } };
解题思路:
- 利用动态规划,从左上角开始,当前点若为1,那么正方形边长为这个点的左边、左上、上面点的最小值加1(短板效应),因为边数取决于最短的那个,若有一个为0,则边为1;
- 利用max_side来记录目前为止的最大边长;
- 一开始遍历第0行和第0列,若有任意一个值为1,那么max_side至少为1;
- 接下来利用动态转换方程求解即可。
阅读全文
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
- 23中设计模式-前辈们智慧总结
- 数字电路中的三极管
- TCP/IP、Http、Socket的区别
- 条件异方差模型
- 操作系统的粗浅理解
- 221. Maximal Square
- C语言深度剖析学习笔记-补码
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- LeetCode 50. Pow(x, n)
- 《Advanced Bash-scripting Guide》学习(九):备份最后一天所有修改的文件
- MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 有什么区别?各适用于什么场合?
- 【我的Android进阶之旅】推荐一款视频转换GIF图片格式的转换工具(Video to GIF)
- 记牌小程序开发
- java后台处理前端传的json串