LeetCode || Maximal Square
2015-09-08 16:37
260 查看
class Solution { public: int maximalSquare(vector<vector<char>>& matrix) { int row = matrix.size(); if(row == 0) return 0; int col = matrix[0].size(); int i = 0, j = 0; vector<vector<int>> CountOnes; CountOnes.resize(row); for(int i = 0;i<row;i++) CountOnes[i].resize(col); //初始化,计算包括matrix[i][j]的连续的1的数量和 for(i = 0;i<row;i++) for(j = 0;j<col;j++) CountOnes[i][j] = (matrix[i][j] == '0')?0:((j == 0)?1:(CountOnes[i][j-1]+1)); //update matrix int maxOnes = 0; //统计1的最大矩阵数量 for(j = 0;j<col;j++) { for(i = 0;i<row;i++) { if(CountOnes[i][j] == 0) continue; int k = i-1; int lines = 1; while(k>=0) { if(CountOnes[k][j]>=CountOnes[i][j]) lines++; else break; k--; } k = i + 1; while(k <row) { if(CountOnes[k][j]>=CountOnes[i][j]) lines++; else break; k++; } if(lines >= CountOnes[i][j]) { int num = CountOnes[i][j]*CountOnes[i][j]; if(num > maxOnes) maxOnes = num; } } } return maxOnes; } };
相关文章推荐
- NIO框架之MINA源码解析(四):粘包与断包处理及编码与解码
- html5培训课程培训 顺利完成获得宝贵财富
- 调整cell的间距
- C#委托与事件
- HTML5+NodeJs实现WebSocket即时通讯
- 不同语言的Unix时间戳
- href="javascript:void(0)"
- react-native试玩(32)-推送通知API
- mysql主从复制
- 从零开始自学Swift(一)
- XMPP 两个客户端实现文件传输
- Spring Assert(方法入参检测工具类-断言)
- NIO框架之MINA源码解析(三):底层通信与责任链模式应用
- Java多线程之七锁
- 1062 - Duplicate entry '20150820048' for key 'goods_serial'
- EF使用时异常:对一个或多个实体的验证失败。有关详细信息
- jquery笔记之属性选择器 查找以某种条件开头的页面元素
- nimi SearchEngin 项目思路及算法
- Treasure Hunt - POJ 1066(线段相交判断)
- PN结的形成及其单向导电性.md