|
H*****L 发帖数: 5705 | 2 akamai of course
bb junior sde has virtually nothing to do with financial stuff, and very
limit focus on software side neither... u could work with mechanical or
chemical ph.d. lol |
|
c******t 发帖数: 1500 | 3 楼主好牛,Bloomberg和Akamai都轻松拿到offer |
|
b********a 发帖数: 5418 | 4 2.4 两个dice,如何label,使得他们的可以表示01-31中的所有数字
意思是每个数字只能由两个数字组成?
多谢面经。
何实现。 |
|
A********l 发帖数: 184 | 5 不客气。
是的。1可以表示成01,2 -->02, etc. |
|
b********a 发帖数: 5418 | 6 哦,所以不是加和或者乘积,是摆起来看着像?6可以当9用的吧?
我家以前有过一个台历就是这么设计的,两块立方体来回摆,小时候还好好奇的研究过,没想到面试还
能碰到。。 |
|
|
|
A********l 发帖数: 184 | 9 是啊,很聪明。
面试前几天我在学打台球,台球里面6和9分得很开。一开始没有想到这个方法,那个面
试我的老年软工笑嘻嘻的和我说有个trick,我才想到。
过,没想到面试还 |
|
g*****a 发帖数: 340 | 10
何实现。
不太明白。。。
一个盒子拿一个,可能是两白一黑或者两黑一白,不一样的那个应该是纯色的。然后把
label全部颠倒过来就好
两个上面一定要都有1和2,因为有11和22,剩下一共8个面,把0-9剩下的8个分别填进
去就好
..
这俩有啥不同?我去google什么是interleave..
.g |
|
A********l 发帖数: 184 | 11 2.3 只需要从标着“mix”的盒子中draw一个就可以了。
如果是白的,这个盒子装的全是白旗子。
然后标着“black”的盒子一定是混合的
标着“white”的是黑色的
2.4 应为需要表示11,22,所以两个dice必须必须有1和2。你不可能把1-9的数字标在
一个dice上,所以要表示01--09,两个dice必须都要0。所以
dice A: 0 1 2
dice B: 0 1 2
剩下的6个位置放3--8(9可以用6来代替)
4.2 也许interleave不是很好的描述。这个需要判断c是否由a和b组成,同时a和b都是c
的子序列。
a = [A, B, C], b =[D, E, F]
如果c = [B, A, D,C,E, F],那么a就不是c的子序列(order变了),所以return
false
如果a和b没有overlap的话,用类似merge sort就可以搞定。如果有overlap,好像比较
麻烦。 |
|
j****a 发帖数: 55 | 12 啊还有这种trick...这题太faint了...
2.4我的想法是:
两个dice 1-6, 结果是两个乘起来。
因为有一堆number没有,比如说primes, 比如说14,22,等等,所以就用多出来的数字
代替。
比如2x3=6,而1x6=6,所以assign 1x6 =14,算了一下,多出来的数字比无法乘出来的
数字多,所以最后用一个assignment table可以完成。 |
|
j****i 发帖数: 305 | 13 Thanks for sharing. Good luck choosing your offer.
何实现。 |
|
c****l 发帖数: 1280 | 14 4.2 也许interleave不是很好的描述。这个需要判断c是否由a和b组成,同时a和b都是c
的子序列。
a = [A, B, C], b =[D, E, F]
如果c = [B, A, D,C,E, F],那么a就不是c的子序列(order变了),所以return
false
如果a和b没有overlap的话,用类似merge sort就可以搞定。如果有overlap,好像比较
麻烦。
==> evern there is overlap, we can still use merge to get it, right?
1) sort a, sort b and sort c
2) meger a and b => tempArray
3) check c is the same as tempArray.
correct me if i am wrong. thanks
是c |
|
K******g 发帖数: 1870 | 15 2.4 还是不懂是什么意思.是用两个dice表示1-31之间所有的数吗?什么叫label?
我感觉就是弄个6进制的计数器不久得了?
11 -> 1
12 -> 2
...
21 -> 7
22 -> 8
...
31 -> 13
...
66 - > 36
4.2 好像很简单啊
用3个指针p1, p2, p3 分别指向 A, B, C
p3必须等于p1和p2中的一个,如果p1和他相等, p1++, 然后p3跳到下一个,如果不等,直
接返回false
另外恭喜LZ拿到好公司的offer,顺便沾点运气. 如果能报offer的数目就更好了.
是c |
|
c******t 发帖数: 1500 | 16 我觉得不能sort啊,如果sort的话不就把string改变了?
是c
return |
|
vn 发帖数: 6191 | 17 第2题
他说了可能有重复的元素。。。细节上比较麻烦 |
|
A*********r 发帖数: 564 | 18 赞楼主,心态真轻松,估计牛人一般都这样,呵呵。。
何实现。 |
|
c******t 发帖数: 1500 | 19 strstr函数如果使用KMP的话会不会效率更高呢?
为什么楼主说不需要? |
|
|
f****g 发帖数: 313 | 21 没有一套库函数的strstr()是用KMP实现的吧,haha
KMP用来处理很长的string matching的问题,一般的很短的str
ing
用strstr()就足以了(KMP还需要preprocess要找的string这个也
有开销) :D |
|
K******g 发帖数: 1870 | 22 这个与重复元素有什么关系,如果三个指针所指向的数字都相等,p1和p2随便一个往前
移就行了
随便多少重复元素,都可以这么做 |
|
vn 发帖数: 6191 | 23 maybe i have some misunderstandings about the interleave... correct me if i
m wrong:
e.g, u have p1 for [a b c] and p2 for [a b d] and the combined array is [a b
d a b c], how u decide to move p2 first rather than p1? |
|
A********l 发帖数: 184 | 24 label的意思是给dice的每一面表上0-9之间的数。
可能没有表述清楚,interviewer问的是用两个dice来“显示”1-31之间的数。 |
|
A********l 发帖数: 184 | 25 是interviewer说不需要些kmp算法,简单点就可以了
P.S.: 我比较懒,很多东西没有表述清楚。 |
|
A********l 发帖数: 184 | 26 也许没有表述好,我说merge sort的意思是指用三个指针,分别指向三个数组,就像
merge sort里做的一样。
是c
return |
|
A********l 发帖数: 184 | 27 A = [a b c]
B = [a b d]
C = [a b c a b d]
p1 = a,
p2 = a,
p3 = a,
如果移动p2
p1 = a, p2 = b, p3 = b
此时只能移动p2,
p1 = a, p2 = d, p3 = c
return false
所以,如果有overlap的话,不能随便移动指针 |
|
|
k***g 发帖数: 58 | 29 4.2 needs to use recursion I think
A=[1,1,1,1]
B=[1,1,1,2]
C=[1,1,1,1,1,1,1,2]
is an extreme case... |
|
d*********i 发帖数: 628 | 30 ls的这个例子,如果先移动p2,那不就return false了?
照lz的例子:
p1 = 1
p2 = 1
p3 = 1
移动p2:
p1=1; p2=1;p3=1;
继续移动p2:
p1=1; p2=1;p3=1;
继续移动p2:
p1=1; p2=2;p3=1;
return false
是这个意思吗?怎么判断该移动p1,or p2? |
|
|
|
|
c****f 发帖数: 28 | 34 弱问下: 如何找出apache weblog中访问最多的几个url,这个怎么做? |
|
|
s******t 发帖数: 229 | 36 三个盒子,一个装的全是白旗子,一个全是黑棋子,一个是混合,但是所有的
label都是错误的,你可以从盒子中draw几个棋子。如何纠正盒子的label,同时保证
draw的次数最少
怎么做 |
|
y*******6 发帖数: 173 | 37 从混合的盒子里DRAW一个,如果是白得旗子,混合盒子必然是全白
那么LABEL成黑得盒子,只能是混合得。
那么LABEL是白得盒子,一定是黑得。
是吗?一次就行。 |
|
|
|
K******g 发帖数: 1870 | 40 两面都是印度人,有点口音,但是execuse me之后,基本能听清楚
第一面很简单,是个印度MM,人也nice。问题都很常见
第二面是个印度GG,说话很急,有点催促的意思。
他问了我3个题目:
1. fork(), exec()调用后,操作系统里做了什么。问的比较细,我回答了COW后,还
问里面PCB里面发生了什么变化,要求很具体的答出来,我回答的有点结巴,所以后面
整个面试就定下了基调
2. 什么叫thrashing,我回答后,要求写code,假设系统有4MB memory,让OS产生
thrashing。这题我有点不知道怎么做,答的很不好。
3. 写c++里的strcpy,这题很简单。写完后,问了好几个无聊的问题:
1) 怎么优化?我说了很多,比如如果数据很大,可以用DMA之类的,他都不满意,最
后他竟然说用“memcpy”,我就觉得奇怪了,在strcpy里用memcpy算是优化吗???
2)我在return之前,给destination付个'\0',他说没有必要,要我想其他办法。我没
有想出来,我说,难道是从src里拷贝一个\0过去?他不置可否,也没有说对也没有说
错。这有什么不 |
|
c******t 发帖数: 1500 | 41 那个thrashing的问题,我给的答案是:
让程序随机的读一个很大的文件(大于物理内存大小)。
也不知道对不对,但是对方貌似比较认可,写出来让大家讨论一下 |
|
h**k 发帖数: 3368 | 42 按照thrashing的定义,应该是multiple threads竞争共享资源,系统时间主要耗费在在
访问共享资源上而不是执行线程代码。
所以这个问题,我觉得,可以设计成两个或多个线程随机读写一块分配在heap上的内存
块,这个内存块的体积大于4MB,所以必须有一部分放在虚拟内存中,从而物理存储在
硬盘上。这样两个线程同时读写不同的位置,会导致系统不断的读写硬盘。 |
|
K******g 发帖数: 1870 | 43 两面都是印度人,有点口音,但是execuse me之后,基本能听清楚
第一面很简单,是个印度MM,人也nice。问题都很常见
第二面是个印度GG,说话很急,有点催促的意思。
他问了我3个题目:
1. fork(), exec()调用后,操作系统里做了什么。问的比较细,我回答了COW后,还
问里面PCB里面发生了什么变化,要求很具体的答出来,我回答的有点结巴,所以后面
整个面试就定下了基调
2. 什么叫thrashing,我回答后,要求写code,假设系统有4MB memory,让OS产生
thrashing。这题我有点不知道怎么做,答的很不好。
3. 写c++里的strcpy,这题很简单。写完后,问了好几个无聊的问题:
1) 怎么优化?我说了很多,比如如果数据很大,可以用DMA之类的,他都不满意,最
后他竟然说用“memcpy”,我就觉得奇怪了,在strcpy里用memcpy算是优化吗???
2)我在return之前,给destination付个'\0',他说没有必要,要我想其他办法。我没
有想出来,我说,难道是从src里拷贝一个\0过去?他不置可否,也没有说对也没有说
错。这有什么不... 阅读全帖 |
|
|
f****g 发帖数: 313 | 45 面试地点在:
8 Cambridge Center in Cambridge, MA. |
|
c******t 发帖数: 1500 | 46 去priceline 自己 bid一个不远的hotel呢? |
|
|
f****g 发帖数: 313 | 48 My friend offers me a place to stay. I am so lucky.. My friend is awesome :D |
|
|
|