avatar
J*n
1
http://blog.csdn.net/linulysses/article/details/5594141
这里有对largest rectangle under histogram, maximal subsequence和largest
submatrix几类问题的总结,大家可以看看。但是其中largest rectangle under
histogram的O(n)算法我不太理解其正确性。
比如我有这样一个histogram {2,10, 15, 7, 9, 8, 3},按照其中的代码
i operation stack max u v
[] 0 0 0
1 push 2 [2] 0 0 0
2 push 10 [10,2] 0 0 0
3 push 15 [15, 10,2] 0 0 0
4 pop 15 [10,2] 15 3 3
pop 10 [2] 20 2 3
* push 7 [7,2] 20 2 3
5 push 9 [9, 7,2] 20 2 3
6 pop 9 [7,2] 20 2 3
* push 8 [8, 7,2] 20 2 3
7 pop 8 [7,2] 20 2 3
pop 7 [2] 21 4 6
* push 3 [3,2] 21 4 6
8 pop 3 [2] 21 4 6
pop 2 [] 21 4 6
* 代码里面漏了这一步
按照上面的代码计算出来最大方形面积是21,但是实际的最大方形面积应该是35才对(对
应的u=2, v=6)
这个O(n)的算法我之前也看过,当时没看懂,这次这个看懂了,但是好像这个是错的
有谁知道正确的算法应该怎么修改?
avatar
j*x
3
千万别看中文的技术资料。。。

0
0

【在 J*********n 的大作中提到】
: http://blog.csdn.net/linulysses/article/details/5594141
: 这里有对largest rectangle under histogram, maximal subsequence和largest
: submatrix几类问题的总结,大家可以看看。但是其中largest rectangle under
: histogram的O(n)算法我不太理解其正确性。
: 比如我有这样一个histogram {2,10, 15, 7, 9, 8, 3},按照其中的代码
: i operation stack max u v
: [] 0 0 0
: 1 push 2 [2] 0 0 0
: 2 push 10 [10,2] 0 0 0
: 3 push 15 [15, 10,2] 0 0 0

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