由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 解一道 GOOGLE 面试题 ...
相关主题
[合集] 解一道 GOOGLE 面试题 ... (转载)一个矩阵分解的问题(对称实矩阵)
[合集] 抛砖引玉-又一道M$面试题的解法... (转载)怎么用lex处理DFA?
[合集] C语言面试题, 如何得到一个字符串长度? (不许遍历)请问遍历树可以用for loop来完成吗?
问个面试题如何在gdb中遍历binary tree
有什么好的histogram算法吗?问个面试题
请教牛人:上手快的交互图编程Cormen星号题:O(n)遍历二叉树,只能用O(1) extra space
encode high cardinality categorical features并行程序能做到不用专门写么?
问题请教面题:copy directed graph
相关话题的讨论汇总
话题: case话题: x2话题: x1话题: 细条话题: max
进入Programming版参与讨论
1 (共1页)
o******r
发帖数: 259
1
题目:
求直方图的最大内接矩形,假设每个细条的宽度为1
好象还没见着解法,我来抛砖引玉吧.
就是找2点x1 < x2, 对应高度h(x), x in [a, b]
S = (x2 - x1)*min h(x), x in [x1, x2]
求 max S
直观解法是列举x1, x2, O(N^2)
先看几个简单情况,细条高度如果是连续值:
1. 单调递减
x1=a, x2 in (a, b]
遍历细条找max area的内接矩形 O(N)
2. 单调递增
和1类似,x1 in [a, b), x2 = b,
遍历, O(N)
3. U 形
分解出 Case 1 和 Case 2,求max
还有 case x1 = a, x2 =b
取3者 max, O(N)
4. n 形
如果2端的细条高度不一样,还可以分解出Case 1 或 2
x1, x2 分别在 上升坡 和下降坡, 而且高度相等
可以从最高细条分别从两边找等高细条,h(x1) = h(x2),找max
O(N)
5. 一般情况
按照 Case 1, 2 分解,发现剩下若干不相邻的 Case 4
依次按 Case 4求解,
还有c
1 (共1页)
进入Programming版参与讨论
相关主题
面题:copy directed graph有什么好的histogram算法吗?
[合集] 给定一个最小堆,如何查找某数是否存在此堆中?请教牛人:上手快的交互图编程
[合集] 二叉树的实现encode high cardinality categorical features
[合集] 请问binary searth tree的遍历问题。问题请教
[合集] 解一道 GOOGLE 面试题 ... (转载)一个矩阵分解的问题(对称实矩阵)
[合集] 抛砖引玉-又一道M$面试题的解法... (转载)怎么用lex处理DFA?
[合集] C语言面试题, 如何得到一个字符串长度? (不许遍历)请问遍历树可以用for loop来完成吗?
问个面试题如何在gdb中遍历binary tree
相关话题的讨论汇总
话题: case话题: x2话题: x1话题: 细条话题: max