Redian新闻
>
求Leetcode OJ Maximal Rectangle的n^2解法
avatar
求Leetcode OJ Maximal Rectangle的n^2解法# JobHunting - 待字闺中
w*x
1
Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle
containing all ones and return its area.
avatar
l*c
2
这题我理解不了,largest不就是matrix本身了吗
avatar
f*t
3
是要里面全部为1

【在 l****c 的大作中提到】
: 这题我理解不了,largest不就是matrix本身了吗
avatar
s*s
4
这道题目是另一个问题的升级,
基础题目是这样的:
表中有若干柱状图,问最大包含在柱状图内的矩形。
这个题目可以用自左到右的堆栈解决,复杂度O(N)
然后上面的题目就是假设有N行,上界是1,下界是1..N
划归成上面的基础题目解决,复杂度O(N^2)
avatar
l*c
5
哦,NOT contain all ones, but all contained are ones.

【在 f*******t 的大作中提到】
: 是要里面全部为1
avatar
w*x
6

这题我跪了

【在 s*******s 的大作中提到】
: 这道题目是另一个问题的升级,
: 基础题目是这样的:
: 表中有若干柱状图,问最大包含在柱状图内的矩形。
: 这个题目可以用自左到右的堆栈解决,复杂度O(N)
: 然后上面的题目就是假设有N行,上界是1,下界是1..N
: 划归成上面的基础题目解决,复杂度O(N^2)

avatar
p*2
7

这题一维的你会了,二维就简单了。

【在 w****x 的大作中提到】
:
: 这题我跪了

avatar
w*x
8

我只知道O(n^3)的, 这题居然能抽象成histogram, 这是多么强大的思维能力阿~~~

【在 p*****2 的大作中提到】
:
: 这题一维的你会了,二维就简单了。

avatar
p*2
9

没办法呀。牛人咱比不了呀。昨天那题解的也很牛X呀。一看就不是一般人。

【在 w****x 的大作中提到】
:
: 我只知道O(n^3)的, 这题居然能抽象成histogram, 这是多么强大的思维能力阿~~~

avatar
t*7
10
这题就是变相求直方图中的最大面积矩形吧?不过之前要确定直方图的X,Y轴,要O(n^2)
avatar
w*x
11
Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle
containing all ones and return its area.
avatar
l*c
12
这题我理解不了,largest不就是matrix本身了吗
avatar
f*t
13
是要里面全部为1

【在 l****c 的大作中提到】
: 这题我理解不了,largest不就是matrix本身了吗
avatar
s*s
14
这道题目是另一个问题的升级,
基础题目是这样的:
表中有若干柱状图,问最大包含在柱状图内的矩形。
这个题目可以用自左到右的堆栈解决,复杂度O(N)
然后上面的题目就是假设有N行,上界是1,下界是1..N
划归成上面的基础题目解决,复杂度O(N^2)
avatar
l*c
15
哦,NOT contain all ones, but all contained are ones.

【在 f*******t 的大作中提到】
: 是要里面全部为1
avatar
w*x
16

这题我跪了

【在 s*******s 的大作中提到】
: 这道题目是另一个问题的升级,
: 基础题目是这样的:
: 表中有若干柱状图,问最大包含在柱状图内的矩形。
: 这个题目可以用自左到右的堆栈解决,复杂度O(N)
: 然后上面的题目就是假设有N行,上界是1,下界是1..N
: 划归成上面的基础题目解决,复杂度O(N^2)

avatar
p*2
17

这题一维的你会了,二维就简单了。

【在 w****x 的大作中提到】
:
: 这题我跪了

avatar
w*x
18

我只知道O(n^3)的, 这题居然能抽象成histogram, 这是多么强大的思维能力阿~~~

【在 p*****2 的大作中提到】
:
: 这题一维的你会了,二维就简单了。

avatar
p*2
19

没办法呀。牛人咱比不了呀。昨天那题解的也很牛X呀。一看就不是一般人。

【在 w****x 的大作中提到】
:
: 我只知道O(n^3)的, 这题居然能抽象成histogram, 这是多么强大的思维能力阿~~~

avatar
t*7
20
这题就是变相求直方图中的最大面积矩形吧?不过之前要确定直方图的X,Y轴,要O(n^2)
avatar
z*2
21

还好吧。。。是挺难想的。。。不过也没那么变态 毕竟两题在一起。。。的确容易联
系起来 不过联系起来了也很难完整的写出来

【在 w****x 的大作中提到】
:
: 我只知道O(n^3)的, 这题居然能抽象成histogram, 这是多么强大的思维能力阿~~~

avatar
h*i
22
还好,我做的时候也想到了。不过面试的时候最好写O(n^3),否则一看就是做过。

【在 w****x 的大作中提到】
:
: 我只知道O(n^3)的, 这题居然能抽象成histogram, 这是多么强大的思维能力阿~~~

avatar
f*s
23
N^3的方法是怎样的?
我只知道不一定全为一的那个可以N^3, 全为1的矩阵(不是方阵)的怎么搞?

【在 h***i 的大作中提到】
: 还好,我做的时候也想到了。不过面试的时候最好写O(n^3),否则一看就是做过。
avatar
z*2
25

还好吧。。。是挺难想的。。。不过也没那么变态 毕竟两题在一起。。。的确容易联
系起来 不过联系起来了也很难完整的写出来

【在 w****x 的大作中提到】
:
: 我只知道O(n^3)的, 这题居然能抽象成histogram, 这是多么强大的思维能力阿~~~

avatar
h*i
26
还好,我做的时候也想到了。不过面试的时候最好写O(n^3),否则一看就是做过。

【在 w****x 的大作中提到】
:
: 我只知道O(n^3)的, 这题居然能抽象成histogram, 这是多么强大的思维能力阿~~~

avatar
f*s
27
N^3的方法是怎样的?
我只知道不一定全为一的那个可以N^3, 全为1的矩阵(不是方阵)的怎么搞?

【在 h***i 的大作中提到】
: 还好,我做的时候也想到了。不过面试的时候最好写O(n^3),否则一看就是做过。
avatar
B*t
30
class Solution {
public:
int maximalRectangle(vector > &matrix) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(!matrix.size())
return 0;
int start, largest = 0;
vector left(matrix[0].size(), 0);
vector right(matrix[0].size(), 0);
vector height(matrix[0].size(), 0);
for(int i = 0; i < matrix.size(); i++)
{
left[0] = 0;
right[matrix[0].size() - 1] = matrix[0].size() - 1;

for(int j = 0; j < matrix[0].size(); j++)
if(matrix[i][j] == '1')
height[j] += 1;
else
height[j] = 0;

for(int j = 1; j < matrix[0].size(); j++)
{
start = j;
while(start > 0 && height[j] <= height[start-1])
start = left[start-1];
left[j] = start;
}

for(int j = matrix[0].size() - 2; j >= 0; j--)
{
start = j;
while(start < height.size()-1 && height[j] <= height[start+1
])
start = right[start+1];
right[j] = start;
}

for(int j = 0; j < matrix[0].size(); j++)
{
int temp = (right[j] - left[j] + 1) * height[j];
if(temp > largest)
largest = temp;
}
}
return largest;
}
};

rectangle

【在 w****x 的大作中提到】
: Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle
: containing all ones and return its area.

avatar
N*D
32
都搞这么牛的题了,太牛了

【在 c****7 的大作中提到】
: 你贴的是square sub-matrix
: leetcode是要retangle

avatar
c*e
33
有人能讲一下O(n^3)的解法吗?
avatar
f*t
34
面试时不会问这么难的

【在 N*D 的大作中提到】
: 都搞这么牛的题了,太牛了
avatar
c*7
35
靠,你们不都是在看leetcode嘛!
我基本都不是做题,就是看别人怎么做,死记硬背下来~~

【在 N*D 的大作中提到】
: 都搞这么牛的题了,太牛了
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。