Redian新闻
>
Google及其它面经 (长,慎入)
avatar
Google及其它面经 (长,慎入)# JobHunting - 待字闺中
l*x
1
fresh cs master, G家onsite不包括lunch person总共见了4个人,按顺序分别是三男
、白男、国女、三女,经历如下:
三男:
1. 两个圆在什么条件下相交?
2. m*n的矩阵in place rotation?
看见阿三我心就凉了半截。年纪大了,反应慢,算算术吭哧吭哧,第一题就捣持了
半天。第二题就别提了,吭哧到最后,也就是讲了讲这题有什么corner case,难点在哪,
说如果换做n*n的就简单多了。三男非常满足的在一边幸灾乐祸的从头笑到尾,把我写
的任何一个字,画的图,说得任何一句话都恨不得要记下来。后来他让我写个不是
in place的了事。回来我google半天,也没有找到这道题在任何地方被提起和讨论过。
我后来discussion的时候问他答案是什么,他也不说,就说这不是个straightforward
的问题,说我们主要是看你解决问题的思路,我觉得you are doing quite well, don't
worry about this. 也许是看自己第一个面我,折磨成那样,良心发现了安慰一下。
白男:
1. n个城市之间的距离要把都存下来,怎么存最省空间?
2. 前序中序重建树。
其实这个白男非常拽,也有点岁数了,估计35超上。但这个说的和写得都让他很满意,
应该是最没问题的一个。最后还剩10多分钟,随便聊了聊。
国女:
0. 也许也有个什么warmup, 我忘了。
1. 64 bit的integer,怎么数里面1的个数?
followup: 要是多次使用你怎么办?你不觉得要用空间的太多了吗,怎么办?
2. p*q的matrix,从左下到右上路径数?
followup: 你这个算的会有什么问题?你怎么解决?
followup: matrix中有障碍呢? (其实我没有感觉到时间过的很快,这个没有code
完,她让我说了说算法了事)

看到国女我喜极生悲,简单的coding被她揪出来bug,不过我不知道她是不是非常nice
的没有记下。要是她能看到这个帖子,我很想说声大姐你很漂亮!
三女:
1. m长的array,长度为k的sliding window,求每次slide一下window里的最大值。然后
问test cases.
2. 你对网络了解吗?(不了解。)好吧那多线程呢?(还行吧)于是问mutex,
semaphore概念,出了个多线程的题,一点一点的深究设计。
三女很认真,虽然跟三男风格大不一样,几乎不记笔记,估计全记脑子里了,但是
她非常认真的在纸上画,试图抓我bug,我面对三女当然谨慎了,没有给她抓到bug。
多线程的设计具体确实不记得了,最后问到一个地方,我愣了20秒没答上来,她心满
意足的发表结束陈词:我们就是想让你能有点东西可以想的,要是你所有问题都答
上来了,说明我们interviewer没有do a good job. 我觉得她很有诚意,应该也没有写
太多坏话。
G家电面在大半年前准备找intern的时候面过了,题目也的确不太记得了,感觉是比
full time的容易。12月初决定quit找工,他家recruiter正好发信问我还有没有兴趣,
我就走上了安排onsite的道路,最后决定安排在2月。 圣诞节左右出去玩了20多天,
回来以后第三天面facebook第一轮电面,然后就挂了。之后onsite了包括G家总共
4家,除了G家别的我都挂了。还是写一下经历吧:
Oracle:
没有电面直接飞过去,吃的好住的好,总共见了5个manager聊天,技术面约等于0,
零星的问一问什么叫BFS, DFS, unix中的ls, cat命令等。汗。最后没有人给我offer,
我厚着脸皮写信问有什么需要改进的。后来还真有人让recruiter回了我的信。他家是唯一
回我这种feedback request的,从头至尾,我感觉O家非常会做人,让我感觉到了丝丝
暖意。只不过有缘无份,非常遗憾。
Epic:
他家非常事儿多,onsite之前要做一些像心理测试类似的东西,onsite的时候要做反
应测试,智力测试,还有写程序。写程序是给5个问题,把你扔到一个办公室自己在
发的sheet本上写。还有见几个人聊天,应该不是manager之类,就是engineer吧,
问了很多behavioral问题,不过都是网上能找到的,我都没有怎么准备,答的肯定不好。
××:
纽约一家比较不算太大的咨询公司,见我的manager是中国人,所以名字我就不说了。
这家公司其实我很有好感,我感觉他们准备面人非常有诚意,虽然公司不大,但是我不
觉得题目比大公司的面试题简单多
少,而且考察的东西很广。而且又是白板、又是笔记本、又是纸上写,什么兵器都用上
了。总共见了5个人,亚裔面孔多,
穿插白人,没有阿三。记得的题目有:
1. 给一段C程序(汗,C我真没仔细学过)看有什么问题,具体的忘了,好像是关于函
数里的char*出了函数就有问题的
事。
2. 从m长的array中随机取里面的n个,怎么做?数学推导?好像还有另外一个也是
sampling啥的,忘了。
3. n-bit的integer,打出所有有k个bit被set的数,你这个复杂度多少?怎么提高?还
是不够高,怎么办?
4. 打印power set。
5. 多线程细节,hashtable细节。
6. 用Java写一个iterator,满足一些要求,细节不记得了,有一点tricky。
7. 给我讲STL里的unique函数是干什么的,让实现,怎么提高效率?
8. 读一个什么文件,问看那些数据我想到些什么,然后写程序求最大,最小,average
之类的。
全写完了,希望大家bless我办OPT或者CPT顺利, 因为这里面可能会有麻烦。
avatar
g*s
2
三男:
1. 两个圆在什么条件下相交?
还有点麻烦。考虑内切和外切两种情况。
2. m*n的矩阵in place rotation?
a1,a2,a3...,b1,b2,b3,...c1,c2,c3... => a1,b1,c1,a2,b2,c2...?
2*n的情况经典。推广到m*n没想过,也许很简单,也许很麻烦。
白男:
1. n个城市之间的距离要存下来,怎么存最省空间?
二维数组?
2. 前序中序重建树。
经典。
国女:
1. 64 bit的integer,怎么数里面1的个数?
followup: 要是多次使用你怎么办?你不觉得要用空间的太多了吗,怎么办?
用一个表记录0~255的1个数。
2. p*q的matrix,从左下到右上路径数?
followup: 你这个算的会有什么问题?你怎么解决?
经典。递归 => dp
followup: matrix中有障碍呢?
容斥原理?如果有很多障碍,还挺麻烦。找一条路径倒是简单,A*。
三女:
1. m长的array,长度为k的sliding window,求每次slide一下window里的最大值。
然后
问test cases.
经典。
2.问mutex, semaphore概念,出了个多线程的题,一点一点的深究设计。

哪,

【在 l******x 的大作中提到】
: fresh cs master, G家onsite不包括lunch person总共见了4个人,按顺序分别是三男
: 、白男、国女、三女,经历如下:
: 三男:
: 1. 两个圆在什么条件下相交?
: 2. m*n的矩阵in place rotation?
: 看见阿三我心就凉了半截。年纪大了,反应慢,算算术吭哧吭哧,第一题就捣持了
: 半天。第二题就别提了,吭哧到最后,也就是讲了讲这题有什么corner case,难点在哪,
: 说如果换做n*n的就简单多了。三男非常满足的在一边幸灾乐祸的从头笑到尾,把我写
: 的任何一个字,画的图,说得任何一句话都恨不得要记下来。后来他让我写个不是
: in place的了事。回来我google半天,也没有找到这道题在任何地方被提起和讨论过。

avatar
z*c
3
请问sliding window那个题的经典做法是什么?

【在 g*********s 的大作中提到】
: 三男:
: 1. 两个圆在什么条件下相交?
: 还有点麻烦。考虑内切和外切两种情况。
: 2. m*n的矩阵in place rotation?
: a1,a2,a3...,b1,b2,b3,...c1,c2,c3... => a1,b1,c1,a2,b2,c2...?
: 2*n的情况经典。推广到m*n没想过,也许很简单,也许很麻烦。
: 白男:
: 1. n个城市之间的距离要存下来,怎么存最省空间?
: 二维数组?
: 2. 前序中序重建树。

avatar
l*a
4
先顶后看

哪,

【在 l******x 的大作中提到】
: fresh cs master, G家onsite不包括lunch person总共见了4个人,按顺序分别是三男
: 、白男、国女、三女,经历如下:
: 三男:
: 1. 两个圆在什么条件下相交?
: 2. m*n的矩阵in place rotation?
: 看见阿三我心就凉了半截。年纪大了,反应慢,算算术吭哧吭哧,第一题就捣持了
: 半天。第二题就别提了,吭哧到最后,也就是讲了讲这题有什么corner case,难点在哪,
: 说如果换做n*n的就简单多了。三男非常满足的在一边幸灾乐祸的从头笑到尾,把我写
: 的任何一个字,画的图,说得任何一句话都恨不得要记下来。后来他让我写个不是
: in place的了事。回来我google半天,也没有找到这道题在任何地方被提起和讨论过。

avatar
f*4
5
用一个queue 每次新来一个数就pop掉queue尾部比它小的数,然后插入queue
尾部,每次出去一个数看一下是不是queue的头部

【在 z**c 的大作中提到】
: 请问sliding window那个题的经典做法是什么?
avatar
R*i
6
多谢楼主分享
avatar
z*c
7
请问时间复杂度是多少?

【在 f*******4 的大作中提到】
: 用一个queue 每次新来一个数就pop掉queue尾部比它小的数,然后插入queue
: 尾部,每次出去一个数看一下是不是queue的头部

avatar
f*4
8
O(n) 每个元素进去一次出来一次

【在 z**c 的大作中提到】
: 请问时间复杂度是多少?
avatar
q*g
9
cong & bless
avatar
z*c
10
不错,多谢!

【在 f*******4 的大作中提到】
: O(n) 每个元素进去一次出来一次
avatar
f*4
11
2. m*n矩阵inplace rotation怎么做?如果用二维数组表示
的矩阵inplace rotation过后怎么保存?
1. n个城市之间的距离要存下来,怎么存最省空间?
二维数组就是O(n^2)的空间了吧 如果牺牲一点access时间的话
会不会和minimum spanning tree有关系?
1. 64 bit的integer,怎么数里面1的个数?
followup: 要是多次使用你怎么办?你不觉得要用空间的太多了吗,怎么办?
不理解这个题,“用一个表记录0~255的1个数”不是成了用空间换时间了么
2. p*q的matrix,从左下到右上路径数?
这个我觉得用C(p,q)最简洁 就是从p里选q个

【在 g*********s 的大作中提到】
: 三男:
: 1. 两个圆在什么条件下相交?
: 还有点麻烦。考虑内切和外切两种情况。
: 2. m*n的矩阵in place rotation?
: a1,a2,a3...,b1,b2,b3,...c1,c2,c3... => a1,b1,c1,a2,b2,c2...?
: 2*n的情况经典。推广到m*n没想过,也许很简单,也许很麻烦。
: 白男:
: 1. n个城市之间的距离要存下来,怎么存最省空间?
: 二维数组?
: 2. 前序中序重建树。

avatar
i*m
12
Big con! 学习学习!

哪,

【在 l******x 的大作中提到】
: fresh cs master, G家onsite不包括lunch person总共见了4个人,按顺序分别是三男
: 、白男、国女、三女,经历如下:
: 三男:
: 1. 两个圆在什么条件下相交?
: 2. m*n的矩阵in place rotation?
: 看见阿三我心就凉了半截。年纪大了,反应慢,算算术吭哧吭哧,第一题就捣持了
: 半天。第二题就别提了,吭哧到最后,也就是讲了讲这题有什么corner case,难点在哪,
: 说如果换做n*n的就简单多了。三男非常满足的在一边幸灾乐祸的从头笑到尾,把我写
: 的任何一个字,画的图,说得任何一句话都恨不得要记下来。后来他让我写个不是
: in place的了事。回来我google半天,也没有找到这道题在任何地方被提起和讨论过。

avatar
h*d
13
谢谢分享!
bless opt/cpt 顺利!!
avatar
f*g
14
三男:
1. 两个圆在什么条件下相交?
就是两圆心和两半径的关系?
比如:!(D > (R1 + R2) || (D + R1) < R2) ?
2. m*n的矩阵in place rotation?
关键是数据是怎么保存的吧。
解决了这个是不是可以rotate m*m
然后递归。
白男:
1. n个城市之间的距离要存下来,怎么存最省空间?
二维数组?
2. 前序中序重建树。
经典。
国女:
1. 64 bit的integer,怎么数里面1的个数?
followup: 要是多次使用你怎么办?你不觉得要用空间的太多了吗,怎么办?
查表 table[256]
2. p*q的matrix,从左下到右上路径数?
followup: 你这个算的会有什么问题?你怎么解决?
经典。可以直接算
followup: matrix中有障碍呢?
DP就行了吧
三女:
1. m长的array,长度为k的sliding window,求每次slide一下window里的最大值。
然后问test cases.
经典。

2.问mutex, semaphore概念,出了个多线程的题,一点一点的深究设计。
avatar
l*x
15

2. m*n的矩阵in place rotation?
关键是数据是怎么保存的吧。
解决了这个是不是可以rotate m*m
然后递归。
嗯, 我后来确实想的是这个思路,不过感觉还是很麻烦,我当场估计也写不出来。所
以也不抱憾了。

【在 f***g 的大作中提到】
: 三男:
: 1. 两个圆在什么条件下相交?
: 就是两圆心和两半径的关系?
: 比如:!(D > (R1 + R2) || (D + R1) < R2) ?
: 2. m*n的矩阵in place rotation?
: 关键是数据是怎么保存的吧。
: 解决了这个是不是可以rotate m*m
: 然后递归。
: 白男:
: 1. n个城市之间的距离要存下来,怎么存最省空间?

avatar
l*a
16
二维数组有一半浪费。。

【在 g*********s 的大作中提到】
: 三男:
: 1. 两个圆在什么条件下相交?
: 还有点麻烦。考虑内切和外切两种情况。
: 2. m*n的矩阵in place rotation?
: a1,a2,a3...,b1,b2,b3,...c1,c2,c3... => a1,b1,c1,a2,b2,c2...?
: 2*n的情况经典。推广到m*n没想过,也许很简单,也许很麻烦。
: 白男:
: 1. n个城市之间的距离要存下来,怎么存最省空间?
: 二维数组?
: 2. 前序中序重建树。

avatar
C*y
17
ajacency list?

【在 l*****a 的大作中提到】
: 二维数组有一半浪费。。
avatar
l*a
18

64bit,why 255?
how many will u use for 64bit?
2^64???
it should be C(p+q,p)
u need to walk p steps to up and q steps to right.altogether p+q steps
there should have p steps up.then C(p+q,p)it is also C(p+q,q)

【在 f*******4 的大作中提到】
: 2. m*n矩阵inplace rotation怎么做?如果用二维数组表示
: 的矩阵inplace rotation过后怎么保存?
: 1. n个城市之间的距离要存下来,怎么存最省空间?
: 二维数组就是O(n^2)的空间了吧 如果牺牲一点access时间的话
: 会不会和minimum spanning tree有关系?
: 1. 64 bit的integer,怎么数里面1的个数?
: followup: 要是多次使用你怎么办?你不觉得要用空间的太多了吗,怎么办?
: 不理解这个题,“用一个表记录0~255的1个数”不是成了用空间换时间了么
: 2. p*q的matrix,从左下到右上路径数?
: 这个我觉得用C(p,q)最简洁 就是从p里选q个

avatar
l*a
19
这个不对。
可能会与前面的值比较,时间复杂度就不好说了

【在 f*******4 的大作中提到】
: O(n) 每个元素进去一次出来一次
avatar
f*g
20
也有一半的浪费吧

【在 C***y 的大作中提到】
: ajacency list?
avatar
f*4
21
1. 我totally不理解2楼说的“用一个表记录0~255的1个数”所以才问。
能科普一下这个查表难道不是空间换时间么?这个是面试官所要的?
2. 对 C(p+q,p) ...

【在 l*****a 的大作中提到】
: 这个不对。
: 可能会与前面的值比较,时间复杂度就不好说了

avatar
f*4
22
每一个数进queue后只可能被比较一次
具体证明记不得了 可以搜一搜

【在 l*****a 的大作中提到】
: 这个不对。
: 可能会与前面的值比较,时间复杂度就不好说了

avatar
g*s
23

多次查用这个。

【在 f*******4 的大作中提到】
: 1. 我totally不理解2楼说的“用一个表记录0~255的1个数”所以才问。
: 能科普一下这个查表难道不是空间换时间么?这个是面试官所要的?
: 2. 对 C(p+q,p) ...

avatar
g*s
24
可以只存上三角部分。
d(x,y) = d(min(x,y), max(x,y)).

【在 l*****a 的大作中提到】
: 二维数组有一半浪费。。
avatar
l*a
25
你用什么数据结构?
二位数组的话,不存也占空间吧

【在 g*********s 的大作中提到】
: 可以只存上三角部分。
: d(x,y) = d(min(x,y), max(x,y)).

avatar
g*s
26

0~255 is for 1 byte. 64bit = 8byte.
unsigned char tab[256];
an int64 need 8 times of table lookup.

【在 l*****a 的大作中提到】
: 你用什么数据结构?
: 二位数组的话,不存也占空间吧

avatar
C*y
27
请问第一个m*n矩阵是怎么存储的?

哪,

【在 l******x 的大作中提到】
: fresh cs master, G家onsite不包括lunch person总共见了4个人,按顺序分别是三男
: 、白男、国女、三女,经历如下:
: 三男:
: 1. 两个圆在什么条件下相交?
: 2. m*n的矩阵in place rotation?
: 看见阿三我心就凉了半截。年纪大了,反应慢,算算术吭哧吭哧,第一题就捣持了
: 半天。第二题就别提了,吭哧到最后,也就是讲了讲这题有什么corner case,难点在哪,
: 说如果换做n*n的就简单多了。三男非常满足的在一边幸灾乐祸的从头笑到尾,把我写
: 的任何一个字,画的图,说得任何一句话都恨不得要记下来。后来他让我写个不是
: in place的了事。回来我google半天,也没有找到这道题在任何地方被提起和讨论过。

avatar
l*x
28
我不知道标准答案,面试官让我自己设计,最后也没有说答案。我就用的二维数组,
后来捣腾用一维, 反正怎么搞都觉得有很多麻烦。我也就是阐述了这些麻烦。。

【在 C***y 的大作中提到】
: 请问第一个m*n矩阵是怎么存储的?
:
: 哪,

avatar
C*y
29
我的初步想法:
用一维数组存储
先做transposition,这个不是square matrix最麻烦
google了一下,wiki上有算法,
http://en.wikipedia.org/wiki/In-place_matrix_transposition#Non-
然后reverse新matrix的每一行
这题真难,现场很难搞定,除非早就知道这个transposition的算法

【在 l******x 的大作中提到】
: 我不知道标准答案,面试官让我自己设计,最后也没有说答案。我就用的二维数组,
: 后来捣腾用一维, 反正怎么搞都觉得有很多麻烦。我也就是阐述了这些麻烦。。

avatar
i*s
30
这题我当年面google的时候也遇到过,特变态,一个国男问的。。。当时是说用一位数
组存储,反正按照C数组的保存方式,写个简单get函数就能拿到第i行j列的数。难点是
首先要找出变换关系,然后要in place转换。。。当时耗了好久,没打出来,然后就挂
了。这题要没碰到过,当场30分钟内能做出来还真是大牛

【在 C***y 的大作中提到】
: 我的初步想法:
: 用一维数组存储
: 先做transposition,这个不是square matrix最麻烦
: google了一下,wiki上有算法,
: http://en.wikipedia.org/wiki/In-place_matrix_transposition#Non-
: 然后reverse新matrix的每一行
: 这题真难,现场很难搞定,除非早就知道这个transposition的算法

avatar
z*o
31
存储city之间的距离的题目,可以有一下两个假设:
1. city1 到 city2 = city2 到 city1
2. city1 到 city2 距离是非负的。
这样的话,可以计算 cityi 到 cityj 的最短路径的边集S(i,j) = { e1,e2,e3..}
S = S(0,1) U S(0,2) U S(0,3) ..... U S(1,2) U S(1,3) U ..... U S(i,i+1) U S
(i,i+2) U ...
最后存下来S就可以了。这种存法的空间是 |S|*( 2*sizeof(int) + 1* sizeof(double
) );
这个空间去和 ((n-1)+(n-2)+(n-3)+...+2+1)*sizeof(double) 的矩阵存法比较一下,用
空间使用比较省的一种来存。|S|够小的时候用第一种比较好,比如所有的city在一条
线上。
|S|不小的时候用第二种比较省,比如city均匀分布在圆上。
avatar
l*a
32
确认一下,这个题想把下面这个矩阵rotate 成什么样子?
a1 a2
b1 b2
c1 c2

square_matrices:_Following_the_cycles

【在 C***y 的大作中提到】
: 我的初步想法:
: 用一维数组存储
: 先做transposition,这个不是square matrix最麻烦
: google了一下,wiki上有算法,
: http://en.wikipedia.org/wiki/In-place_matrix_transposition#Non-
: 然后reverse新matrix的每一行
: 这题真难,现场很难搞定,除非早就知道这个transposition的算法

avatar
f*4
33
赞 问一下 你这个存了S然后我要查比如S(i,j),该怎么返回呢?

U S
double
,用

【在 z****o 的大作中提到】
: 存储city之间的距离的题目,可以有一下两个假设:
: 1. city1 到 city2 = city2 到 city1
: 2. city1 到 city2 距离是非负的。
: 这样的话,可以计算 cityi 到 cityj 的最短路径的边集S(i,j) = { e1,e2,e3..}
: S = S(0,1) U S(0,2) U S(0,3) ..... U S(1,2) U S(1,3) U ..... U S(i,i+1) U S
: (i,i+2) U ...
: 最后存下来S就可以了。这种存法的空间是 |S|*( 2*sizeof(int) + 1* sizeof(double
: ) );
: 这个空间去和 ((n-1)+(n-2)+(n-3)+...+2+1)*sizeof(double) 的矩阵存法比较一下,用
: 空间使用比较省的一种来存。|S|够小的时候用第一种比较好,比如所有的city在一条

avatar
z*o
34
这个只考虑最省存储。如果需要使用距离的话,需要对整个图先run一个APSP,算是解
压缩成矩阵形式。

【在 f*******4 的大作中提到】
: 赞 问一下 你这个存了S然后我要查比如S(i,j),该怎么返回呢?
:
: U S
: double
: ,用

avatar
d*t
35
应该就是把一个三角形的点阵按序编号,第i个城市和第j个城市之间的距离存储在一个
长度为(N-1)N/2的数组的第(i-2)(i-1)/2+j个位置上,这里只需要考虑i>j的情况。

S
double
,用

【在 z****o 的大作中提到】
: 存储city之间的距离的题目,可以有一下两个假设:
: 1. city1 到 city2 = city2 到 city1
: 2. city1 到 city2 距离是非负的。
: 这样的话,可以计算 cityi 到 cityj 的最短路径的边集S(i,j) = { e1,e2,e3..}
: S = S(0,1) U S(0,2) U S(0,3) ..... U S(1,2) U S(1,3) U ..... U S(i,i+1) U S
: (i,i+2) U ...
: 最后存下来S就可以了。这种存法的空间是 |S|*( 2*sizeof(int) + 1* sizeof(double
: ) );
: 这个空间去和 ((n-1)+(n-2)+(n-3)+...+2+1)*sizeof(double) 的矩阵存法比较一下,用
: 空间使用比较省的一种来存。|S|够小的时候用第一种比较好,比如所有的city在一条

avatar
g*s
36
sorry, i don't get it. what is "U" here, union? so u just save E?

U S
double
,用

【在 z****o 的大作中提到】
: 存储city之间的距离的题目,可以有一下两个假设:
: 1. city1 到 city2 = city2 到 city1
: 2. city1 到 city2 距离是非负的。
: 这样的话,可以计算 cityi 到 cityj 的最短路径的边集S(i,j) = { e1,e2,e3..}
: S = S(0,1) U S(0,2) U S(0,3) ..... U S(1,2) U S(1,3) U ..... U S(i,i+1) U S
: (i,i+2) U ...
: 最后存下来S就可以了。这种存法的空间是 |S|*( 2*sizeof(int) + 1* sizeof(double
: ) );
: 这个空间去和 ((n-1)+(n-2)+(n-3)+...+2+1)*sizeof(double) 的矩阵存法比较一下,用
: 空间使用比较省的一种来存。|S|够小的时候用第一种比较好,比如所有的city在一条

avatar
s*c
37
c1 b1 a1
c2 b2 a2

【在 l*****a 的大作中提到】
: 确认一下,这个题想把下面这个矩阵rotate 成什么样子?
: a1 a2
: b1 b2
: c1 c2
:
: square_matrices:_Following_the_cycles

avatar
f*4
38
那你保存的S有什么作用呢?

【在 z****o 的大作中提到】
: 这个只考虑最省存储。如果需要使用距离的话,需要对整个图先run一个APSP,算是解
: 压缩成矩阵形式。

avatar
z*o
39
是的 Union

【在 g*********s 的大作中提到】
: sorry, i don't get it. what is "U" here, union? so u just save E?
:
: U S
: double
: ,用

avatar
z*o
40
一种存储形式,类似于压缩之后数据。

【在 f*******4 的大作中提到】
: 那你保存的S有什么作用呢?
avatar
c*m
41

可以通过移位转化成255以及更小的,
我觉得存距离那个可以用一维数组表示那个三角阵。
所以想来考点是如何算index?
至于用spanning tree的想法,n-1的空间。但是算距离的时候没有角度信息应该没法算
出来任意两点
的距离吧。而且如果从这个角度说,还不如只存城市的坐标,现算距离。

【在 l*****a 的大作中提到】
: 确认一下,这个题想把下面这个矩阵rotate 成什么样子?
: a1 a2
: b1 b2
: c1 c2
:
: square_matrices:_Following_the_cycles

avatar
m*7
42
赞!"大姐你很漂亮"
avatar
l*x
43
总结一下吧,大家基本都找到了答案,还有问题的有:
国女数路径的题,原来大家都assume我不会直接算嘛。。我倒是assume大家都会的。。
问的就是这样有什么问题,怎么解决。
三男转矩阵的题,ls有人给出了wiki的转置的链接,其实我觉得转置和旋转,难度上是
一样的。虽然我之前不知道这个转置算法,但是我感觉提前知道跟不知道差别也不太大,
该纠结还是纠结。首先是wiki上算转换坐标的公式,也太fancy了吧,直接死算不行吗。
而且,wiki上这个算法,并没有解决我的纠结。这个算法,还真不是像2*n的那样是个
有个性的漂亮解法,它的基本想法不就是straightforward的转圈吗?那个转圈,它那里
伪码一写很轻松,真的写代码,到底怎么转?n*n好转,是因为永远在同一个border上
转,一个border上转的不会hurt到其他的,所以不用记录谁转过谁没转过。这m*n一转
起来全乱了,一个不是圈的圈转完了,如果不记录谁转过谁没转过,下一个从哪转起谁
知道?wiki上的做法,也是用log n的空间记录一下谁转过,这个严格来说算 in place
吗?反正,这题的名字就叫纠结!
btw, 原来大家对小公司的题就这么不屑于一聊嘛。。我觉得他家题还不错呀。。

哪,

【在 l******x 的大作中提到】
: fresh cs master, G家onsite不包括lunch person总共见了4个人,按顺序分别是三男
: 、白男、国女、三女,经历如下:
: 三男:
: 1. 两个圆在什么条件下相交?
: 2. m*n的矩阵in place rotation?
: 看见阿三我心就凉了半截。年纪大了,反应慢,算算术吭哧吭哧,第一题就捣持了
: 半天。第二题就别提了,吭哧到最后,也就是讲了讲这题有什么corner case,难点在哪,
: 说如果换做n*n的就简单多了。三男非常满足的在一边幸灾乐祸的从头笑到尾,把我写
: 的任何一个字,画的图,说得任何一句话都恨不得要记下来。后来他让我写个不是
: in place的了事。回来我google半天,也没有找到这道题在任何地方被提起和讨论过。

avatar
g*s
44
你说最后一个小公司?也没什么新题吧。

大,
吗。
那里

【在 l******x 的大作中提到】
: 总结一下吧,大家基本都找到了答案,还有问题的有:
: 国女数路径的题,原来大家都assume我不会直接算嘛。。我倒是assume大家都会的。。
: 问的就是这样有什么问题,怎么解决。
: 三男转矩阵的题,ls有人给出了wiki的转置的链接,其实我觉得转置和旋转,难度上是
: 一样的。虽然我之前不知道这个转置算法,但是我感觉提前知道跟不知道差别也不太大,
: 该纠结还是纠结。首先是wiki上算转换坐标的公式,也太fancy了吧,直接死算不行吗。
: 而且,wiki上这个算法,并没有解决我的纠结。这个算法,还真不是像2*n的那样是个
: 有个性的漂亮解法,它的基本想法不就是straightforward的转圈吗?那个转圈,它那里
: 伪码一写很轻松,真的写代码,到底怎么转?n*n好转,是因为永远在同一个border上
: 转,一个border上转的不会hurt到其他的,所以不用记录谁转过谁没转过。这m*n一转

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