由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问一道flg面试题
相关主题
O(NlogN) largest rectangle in histogram问一道G家面试题
问个老算法题Google interview question
问道G题(2)关于矩阵中找矩形和正方形汇总请教
发道面经攒人品Google onsite interview questions
今早的G电面,郁闷坏了...问一个算法题
微软校园面试总结尘埃落定(MGF的面试总结)
请问一道面试题直方图盛水最大容量问题
问一个G家面试题这题咋做?
相关话题的讨论汇总
话题: rectangle话题: 个点话题: 矩形话题: 最小话题: each
进入JobHunting版参与讨论
1 (共1页)
k*******r
发帖数: 355
1
从别处看来的,
给定N个点,每个点有(x,y)坐标, 要找一个最小面积的矩形,使得它cover至少k个点.
这个题目输入是那N个坐标和参数k, 输出是最小面积矩形
这个题O(N)能不能搞定,还是必须要O(N^2). 哪位大牛谈谈
w********s
发帖数: 1570
2
积分图像
扫一遍可以获得积分图像
S(i,j)=从(0,0)到(i,j)的点的个数
之后,对于任意的矩形(i,j),(k,l),都可以一步求得其中包含的点的个数
S2 = S(k,l) - S(k,j) - S(i,l) + S(i,j)
O(n^2)肯定可以搞定。

点.

【在 k*******r 的大作中提到】
: 从别处看来的,
: 给定N个点,每个点有(x,y)坐标, 要找一个最小面积的矩形,使得它cover至少k个点.
: 这个题目输入是那N个坐标和参数k, 输出是最小面积矩形
: 这个题O(N)能不能搞定,还是必须要O(N^2). 哪位大牛谈谈

k*******r
发帖数: 355
3
你这个解法在O(n^2)不一定找得到最优解,因为所要找到的矩形顶点,未必就在给定点
中。
比如给定三个点(0,0), (0,4), (4,0), k=3, 那么解答应该是(0,0), (4,4). 但(4,4)
这个点不在给定点中。
这样一来,如果用你的解法,就要try out all rectangles, 你要考虑可能的顶点数就
是O(N^2)个了,那你的矩形candidate数就是O(n^4)
k*******r
发帖数: 355
4
另外题目中约束条件是至少含K个点,而不是刚好含K个点, 所以题目的约束条件是一
个比较松弛的条件,按说可以用这减少时间复杂度的
k*******r
发帖数: 355
5
另外题目中约束条件是至少含K个点,而不是刚好含K个点, 所以题目的约束条件是一
个比较松弛的条件,按说可以用这减少时间复杂度的
f*****e
发帖数: 2992
6
for(int i = 0; i < rows; ++i){
for(int j = 0; j <= i; ++j){
对从j到i的rows使用蠕虫算法。
}
}
复杂度O(N^3)

【在 k*******r 的大作中提到】
: 另外题目中约束条件是至少含K个点,而不是刚好含K个点, 所以题目的约束条件是一
: 个比较松弛的条件,按说可以用这减少时间复杂度的

s*****g
发帖数: 39
7
想到一个nlogn的算法:
先按照x value对n个点排序,然后对它们按照y value建segment tree。这样的话,对
第i到i+k-1个点,只需要O(1)找出x_max和x_min,需要O(logn)找出y_max和y_min。
这个方法假设了正方形的下边沿和x轴平行。如果没有这个constraint的话,可能更复
杂了

【在 k*******r 的大作中提到】
: 另外题目中约束条件是至少含K个点,而不是刚好含K个点, 所以题目的约束条件是一
: 个比较松弛的条件,按说可以用这减少时间复杂度的

c******0
发帖数: 260
8
记得数据结构课上讲过一种结构,专门解决这个问题的…

点.

【在 k*******r 的大作中提到】
: 从别处看来的,
: 给定N个点,每个点有(x,y)坐标, 要找一个最小面积的矩形,使得它cover至少k个点.
: 这个题目输入是那N个坐标和参数k, 输出是最小面积矩形
: 这个题O(N)能不能搞定,还是必须要O(N^2). 哪位大牛谈谈

k*******r
发帖数: 355
9
shicong,你的nlogn解法好像不能保证最优解吧,因为你的算法是对每k个x坐标连续的
点,算出覆盖这k个点的矩形最小面积。
但既然你没有遍历所有可能的k个点,就不能保证你漏掉的那些矩形candidate不含更优
的解啊。 换句话说,最优解矩形含的那k个点,他们在x坐标未必连续啊
f*****e
发帖数: 2992
10
嗯,最小长方形有可能是扁的,not bounded by ymin and ymax。

【在 k*******r 的大作中提到】
: shicong,你的nlogn解法好像不能保证最优解吧,因为你的算法是对每k个x坐标连续的
: 点,算出覆盖这k个点的矩形最小面积。
: 但既然你没有遍历所有可能的k个点,就不能保证你漏掉的那些矩形candidate不含更优
: 的解啊。 换句话说,最优解矩形含的那k个点,他们在x坐标未必连续啊

相关主题
微软校园面试总结问一道G家面试题
请问一道面试题Google interview question
问一个G家面试题关于矩阵中找矩形和正方形汇总请教
进入JobHunting版参与讨论
w********s
发帖数: 1570
11
大于n^2, 小于n^3。
对从(k,j)开始的点,遍历(k+n), (j+m),如果遇到>k的时候,可以break,对于k+n,
寻找最小的m,也可以用二分查找法。

【在 k*******r 的大作中提到】
: 你这个解法在O(n^2)不一定找得到最优解,因为所要找到的矩形顶点,未必就在给定点
: 中。
: 比如给定三个点(0,0), (0,4), (4,0), k=3, 那么解答应该是(0,0), (4,4). 但(4,4)
: 这个点不在给定点中。
: 这样一来,如果用你的解法,就要try out all rectangles, 你要考虑可能的顶点数就
: 是O(N^2)个了,那你的矩形candidate数就是O(n^4)

l**z
发帖数: 78
12
正确性好像有问题

【在 s*****g 的大作中提到】
: 想到一个nlogn的算法:
: 先按照x value对n个点排序,然后对它们按照y value建segment tree。这样的话,对
: 第i到i+k-1个点,只需要O(1)找出x_max和x_min,需要O(logn)找出y_max和y_min。
: 这个方法假设了正方形的下边沿和x轴平行。如果没有这个constraint的话,可能更复
: 杂了

l**z
发帖数: 78
13
网格边长都是2N吧,这样最终复杂度还是O(n^2)

【在 k*******r 的大作中提到】
: 你这个解法在O(n^2)不一定找得到最优解,因为所要找到的矩形顶点,未必就在给定点
: 中。
: 比如给定三个点(0,0), (0,4), (4,0), k=3, 那么解答应该是(0,0), (4,4). 但(4,4)
: 这个点不在给定点中。
: 这样一来,如果用你的解法,就要try out all rectangles, 你要考虑可能的顶点数就
: 是O(N^2)个了,那你的矩形candidate数就是O(n^4)

s*****g
发帖数: 39
14
确实考虑不周了...

【在 k*******r 的大作中提到】
: shicong,你的nlogn解法好像不能保证最优解吧,因为你的算法是对每k个x坐标连续的
: 点,算出覆盖这k个点的矩形最小面积。
: 但既然你没有遍历所有可能的k个点,就不能保证你漏掉的那些矩形candidate不含更优
: 的解啊。 换句话说,最优解矩形含的那k个点,他们在x坐标未必连续啊

g******y
发帖数: 143
15
Can the rectangle be rotated?

点.

【在 k*******r 的大作中提到】
: 从别处看来的,
: 给定N个点,每个点有(x,y)坐标, 要找一个最小面积的矩形,使得它cover至少k个点.
: 这个题目输入是那N个坐标和参数k, 输出是最小面积矩形
: 这个题O(N)能不能搞定,还是必须要O(N^2). 哪位大牛谈谈

l*********8
发帖数: 4642
16
two-d tree吧

点.

【在 k*******r 的大作中提到】
: 从别处看来的,
: 给定N个点,每个点有(x,y)坐标, 要找一个最小面积的矩形,使得它cover至少k个点.
: 这个题目输入是那N个坐标和参数k, 输出是最小面积矩形
: 这个题O(N)能不能搞定,还是必须要O(N^2). 哪位大牛谈谈

s******t
发帖数: 229
17
二维线段树,建树O(x*y),query O(logn)
如果是rotate rectangle 或者坐标是double什么的,我就不知道了
i*******t
发帖数: 499
18
How about this?
Create a data structure like range tree to efficiently search for the needed
points.
For each point, create a rectangle of area zero.
Then for each rectangle containing one point, enlarge the rectangle to
contain one more point that increase the area the least. So now there are at
most n-1 rectangles each containing two points.
Then for each rectangle with two points, enlarge it again by adding another
point that still minimizing the area of that rectangle.
Repeat this until each rectangle contains k points.
There are at most n-k+1 such rectangles. Return the one with the smallest
area.
Looks like the complexity is O(knlogn)
i*******t
发帖数: 499
19
flg是什么?
h******6
发帖数: 2697
相关主题
Google onsite interview questions直方图盛水最大容量问题
问一个算法题这题咋做?
尘埃落定(MGF的面试总结)求Leetcode OJ Maximal Rectangle的n^2解法
进入JobHunting版参与讨论
n********e
发帖数: 41
21
包含两个点的为啥是n-1个?
难道不是 C(n,2) 个么?

needed
at
another

【在 i*******t 的大作中提到】
: How about this?
: Create a data structure like range tree to efficiently search for the needed
: points.
: For each point, create a rectangle of area zero.
: Then for each rectangle containing one point, enlarge the rectangle to
: contain one more point that increase the area the least. So now there are at
: most n-1 rectangles each containing two points.
: Then for each rectangle with two points, enlarge it again by adding another
: point that still minimizing the area of that rectangle.
: Repeat this until each rectangle contains k points.

i*******t
发帖数: 499
22
是让面积最小的点。
每个点都可以找到另一个点让面积最小。

【在 n********e 的大作中提到】
: 包含两个点的为啥是n-1个?
: 难道不是 C(n,2) 个么?
:
: needed
: at
: another

i*******t
发帖数: 499
23
我发现这个greedy algorithm也不能保证最优解。
比如说要从下面这6个点找4点
.
..

..
.

needed
at
another

【在 i*******t 的大作中提到】
: How about this?
: Create a data structure like range tree to efficiently search for the needed
: points.
: For each point, create a rectangle of area zero.
: Then for each rectangle containing one point, enlarge the rectangle to
: contain one more point that increase the area the least. So now there are at
: most n-1 rectangles each containing two points.
: Then for each rectangle with two points, enlarge it again by adding another
: point that still minimizing the area of that rectangle.
: Repeat this until each rectangle contains k points.

i*******t
发帖数: 499
24
好像是。不过质量可能不是很好。
刚找到这篇可能好点
www.cccg.ca/proceedings/1996/cccg1996_0004.pdf

【在 h******6 的大作中提到】
: 是这个么
: http://cisjournal.org/journalofcomputing/archive/vol3no6/vol3no

D*********1
发帖数: 34
25
不好意思,刚点成回复给作者了。您能给个O(N^2)的算法吗?

点.

【在 k*******r 的大作中提到】
: 从别处看来的,
: 给定N个点,每个点有(x,y)坐标, 要找一个最小面积的矩形,使得它cover至少k个点.
: 这个题目输入是那N个坐标和参数k, 输出是最小面积矩形
: 这个题O(N)能不能搞定,还是必须要O(N^2). 哪位大牛谈谈

1 (共1页)
进入JobHunting版参与讨论
相关主题
这题咋做?今早的G电面,郁闷坏了...
求Leetcode OJ Maximal Rectangle的n^2解法微软校园面试总结
leetcode: largest rectangle in histogram求帮助请问一道面试题
请教两个题问一个G家面试题
O(NlogN) largest rectangle in histogram问一道G家面试题
问个老算法题Google interview question
问道G题(2)关于矩阵中找矩形和正方形汇总请教
发道面经攒人品Google onsite interview questions
相关话题的讨论汇总
话题: rectangle话题: 个点话题: 矩形话题: 最小话题: each