博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 最大子矩阵(5星推荐)
阅读量:5330 次
发布时间:2019-06-14

本文共 1265 字,大约阅读时间需要 4 分钟。

class Solution {public:    int maximalRectangle(vector
> &matrix) { if (matrix.empty()) { return 0; } int n = matrix[0].size(); vector
H(n); vector
L(n); vector
R(n, n); int ret = 0; for (int i = 0; i < matrix.size(); ++i) { int left = 0, right = n; // calculate L(i, j) from left to right for (int j = 0; j < n; ++j) { if (matrix[i][j] == '1') { ++H[j]; L[j] = max(L[j], left); } else { left = j+1; H[j] = 0; L[j] = 0; R[j] = n; } } // calculate R(i, j) from right to right for (int j = n-1; j >= 0; --j) { if (matrix[i][j] == '1') { R[j] = min(R[j], right); ret = max(ret, H[j]*(R[j]-L[j])); } else { right = j; } } } return ret; }};

这题自己写的算法复杂度很高,参考了leetcode官方讨论的算法,非常巧妙。

转载于:https://www.cnblogs.com/tgkx1054/archive/2013/05/31/3111564.html

你可能感兴趣的文章
线程安全问题
查看>>
SSM集成activiti6.0错误集锦(一)
查看>>
下拉刷新
查看>>
linux的子进程调用exec( )系列函数
查看>>
MSChart的研究
查看>>
C# 索引器
查看>>
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
delphi 内嵌汇编例子
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>
MATLAB作图方法与技巧(一)
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>
Google透露Android Market恶意程序扫描服务
查看>>
给mysql数据库字段值拼接前缀或后缀。 concat()函数
查看>>
迷宫问题
查看>>
【FZSZ2017暑假提高组Day9】猜数游戏(number)
查看>>
泛型子类_属性类型_重写方法类型
查看>>
eclipse-将同一个文件分屏显示
查看>>
mysql5.x升级至mysql5.7后导入之前数据库date出错的解决方法!
查看>>