由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - ms面试题求教
相关主题
昨天的MS面试深夜无聊,翻到精华区的数学题
请教onsite一道题变相的merge sort
想起来以前面试的一个题目,是不是我太弱了这个算法题算难吗
G家onsite一题google全程面试题目,顺求安慰。。。
问问几个软件公司所用的编程语言G家一道题
微软实习第一轮面试总结报小offer Fresh PHD (BME) +面试经历
发几家面经(Bloomberg, Amazon, Epic, Microsoft, Zillow),求函数的极值那题的解法?
近来面经弱问找函数的极值有那些方法?
相关话题的讨论汇总
话题: 光源话题: x1话题: points话题: 遮挡话题: angle
进入JobHunting版参与讨论
1 (共1页)
z****h
发帖数: 164
1
16. [Microsft] 给出平面上第一象限内landscape 的轮廓,也就是一些列的(x,y)坐标
, x=0,1,...,N
,以及Y 轴上光源坐标(0,H)。问这N+1 个点钟那些被照亮那些是阴影。(叉乘)
一一计算光源到(x,y)的角度,再与左边的角度对比即可知是否被遮挡,复杂度O(N)
只需要与左边角度对比?O(N)?
我还是觉得必须n方阿。
哪位大牛指点一下?谢谢!
l*****a
发帖数: 14598
2
我认为
每个点跟之前的极值点比较即可
所以是线性

【在 z****h 的大作中提到】
: 16. [Microsft] 给出平面上第一象限内landscape 的轮廓,也就是一些列的(x,y)坐标
: , x=0,1,...,N
: ,以及Y 轴上光源坐标(0,H)。问这N+1 个点钟那些被照亮那些是阴影。(叉乘)
: 一一计算光源到(x,y)的角度,再与左边的角度对比即可知是否被遮挡,复杂度O(N)
: 只需要与左边角度对比?O(N)?
: 我还是觉得必须n方阿。
: 哪位大牛指点一下?谢谢!

z****h
发帖数: 164
3
请问什么是极值点?
l*****a
发帖数: 14598
4
(0,h) 与 (x,y)的角度/斜率。。

【在 l*****a 的大作中提到】
: 我认为
: 每个点跟之前的极值点比较即可
: 所以是线性

p*****2
发帖数: 21240
5
没看明白。几何的东西?
m*****g
发帖数: 226
6
blockedPoints = []
for point in points:
angle = getAngle(point, lightOrig)
allAngles[angle]++;
if allAngles[angle] > 1 :
blockedPoints += points

【在 z****h 的大作中提到】
: 16. [Microsft] 给出平面上第一象限内landscape 的轮廓,也就是一些列的(x,y)坐标
: , x=0,1,...,N
: ,以及Y 轴上光源坐标(0,H)。问这N+1 个点钟那些被照亮那些是阴影。(叉乘)
: 一一计算光源到(x,y)的角度,再与左边的角度对比即可知是否被遮挡,复杂度O(N)
: 只需要与左边角度对比?O(N)?
: 我还是觉得必须n方阿。
: 哪位大牛指点一下?谢谢!

A**l
发帖数: 2650
7
我连题目都没看懂,到底是N+1个“点”互相遮挡,还是这些点形成的多边形遮挡
另外这些点给出来的顺序也很重要,从左到右、从上到下顺时针、逆时针。。。
不过基本上是计算几何的问题

【在 z****h 的大作中提到】
: 16. [Microsft] 给出平面上第一象限内landscape 的轮廓,也就是一些列的(x,y)坐标
: , x=0,1,...,N
: ,以及Y 轴上光源坐标(0,H)。问这N+1 个点钟那些被照亮那些是阴影。(叉乘)
: 一一计算光源到(x,y)的角度,再与左边的角度对比即可知是否被遮挡,复杂度O(N)
: 只需要与左边角度对比?O(N)?
: 我还是觉得必须n方阿。
: 哪位大牛指点一下?谢谢!

G******e
发帖数: 229
8
没看懂题
z****h
发帖数: 164
9
多谢,这是空间换时间吧。
space O(n), time O(n).
不过从原作者描述好像是有space O(1) time O(n)的解法。。。

【在 m*****g 的大作中提到】
: blockedPoints = []
: for point in points:
: angle = getAngle(point, lightOrig)
: allAngles[angle]++;
: if allAngles[angle] > 1 :
: blockedPoints += points

z****h
发帖数: 164
10
confused.不能只跟之前的极值比吧。比如 X1 (1,h), X2(3, h), .... Xi-1(49, h)
Xi(50,h)。Xi不会被Xi-1遮挡但是会被不相临的x1遮挡。

【在 l*****a 的大作中提到】
: 我认为
: 每个点跟之前的极值点比较即可
: 所以是线性

相关主题
微软实习第一轮面试总结深夜无聊,翻到精华区的数学题
发几家面经(Bloomberg, Amazon, Epic, Microsoft, Zillow),变相的merge sort
近来面经这个算法题算难吗
进入JobHunting版参与讨论
z****h
发帖数: 164
11
我是这样理解的。假设每个点都是一个物理点的实体,在光源照射后都有阴影,而且阴
影就是一条直线。如果有两个点和光源在一条直线上,离光源近的点被照亮,后面的点
被遮挡。比如光源在(0,h), x1( 1, h), x2(2, h),x1被照亮,x2被遮挡。

【在 p*****2 的大作中提到】
: 没看明白。几何的东西?
I*******l
发帖数: 203
12
If all the points are already sorted based on x-coordinate, then O(n) time
should be enough. Otherwise you need O(nlogn) time to first sort these
points and then process the n points from left to right and use a hash table
to store the blocked (or shadowed) angles.

【在 z****h 的大作中提到】
: 我是这样理解的。假设每个点都是一个物理点的实体,在光源照射后都有阴影,而且阴
: 影就是一条直线。如果有两个点和光源在一条直线上,离光源近的点被照亮,后面的点
: 被遮挡。比如光源在(0,h), x1( 1, h), x2(2, h),x1被照亮,x2被遮挡。

z****h
发帖数: 164
13
就算按x排序了也不行吧。
光源(0,h), x1( 1, h), x2 ( 2, 1) .... xn (n, h)
x1会挡xn

table

【在 I*******l 的大作中提到】
: If all the points are already sorted based on x-coordinate, then O(n) time
: should be enough. Otherwise you need O(nlogn) time to first sort these
: points and then process the n points from left to right and use a hash table
: to store the blocked (or shadowed) angles.

I*******l
发帖数: 203
14
In this case, after processing x1, slope k=0 will be stored in the hash
table. Then xn knows it will be blocked.

【在 z****h 的大作中提到】
: 就算按x排序了也不行吧。
: 光源(0,h), x1( 1, h), x2 ( 2, 1) .... xn (n, h)
: x1会挡xn
:
: table

y****g
发帖数: 5
15
只需用一个变量记录之前点中的最高点,每次与这个最高点比较即可。算法其余的部分
与楼主的想法一样。这样的复杂度是O(n)。
1 (共1页)
进入JobHunting版参与讨论
相关主题
弱问找函数的极值有那些方法?问问几个软件公司所用的编程语言
-- 大家当码工happy吗?微软实习第一轮面试总结
'大数据'干掉了'数据仓库'?发几家面经(Bloomberg, Amazon, Epic, Microsoft, Zillow),
一道算法题近来面经
昨天的MS面试深夜无聊,翻到精华区的数学题
请教onsite一道题变相的merge sort
想起来以前面试的一个题目,是不是我太弱了这个算法题算难吗
G家onsite一题google全程面试题目,顺求安慰。。。
相关话题的讨论汇总
话题: 光源话题: x1话题: points话题: 遮挡话题: angle