由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 骑驴找马结束,分享面试题回馈贵版
相关主题
问一个linkedin的面试题亚麻新鲜面经
请问一道面试题Iterator over nested collectionsAmazon面经
Groupon 电面请教onsite一道题
谁有那个 nested hashmap iteration 的讨论阿?Y! onsite新鲜面经
An interview question of finding the median in a moving window.FG面经和感想
问一道题(9)Facebook求bless
Facebook onsite 个人认为巨难的一道题,请大牛们来评估下分享FB面筋
面经分享Palantir面经
相关话题的讨论汇总
话题: output话题: return话题: def话题: array话题: __
进入JobHunting版参与讨论
1 (共1页)
k******4
发帖数: 7
1
为了防止违反NDA,就不列出公司名了,就是一些常见公司。
1. Write a iterator to iterate a nested array.
For example, for given array: [1, 2, [3, [4, 5], [6, 7], 8], 9, 10]
call iterator.next() 10 times should return 1,2,3,4,5,6,7,8,9,10.
用了stack存(array, index)的tuple。
2. LeetCode 原题,120 - Triange。有一点变种,给的是一维数组。
3. Implement HashTable 主要看dynamic expanding
4. Implement MaxHeap.
5. Topology sort,就是版上常见的给一些排过序的未知语言的词,求该语言的字母序
。要求实现核心算法。可以给出一些helper function定义不需实现。
6. LeetCode 付费题 157 & 158 - Read N Characters Given Read4()。提供int
read4(char* buf),实现int read(char* buf, int len)。read4函数读至多4个字符,
除非EOF,并返回实际读到的字符个数。题没有难度要注意一些细节问题。
7. Given an array with length n + 1. The array contains numbers from 1 to n,
with one of the number duplicated. Now find the duplicated number.
讨论各种解法以及时间空间复杂度,最后实现O(N)时间O(1)空间的解法。数组可以
mutate.
8. Given a bag of characters and a dictionary, find longest string that can
be constructed.
9. Given a grid of characters and a dictionary, find all possible words from
grid.
以上两题都用的标准Trie树解法。讨论复杂度,和优化方案。
10. Given a grid with 'o' and 'x'. Find minimum steps from top-left to
bottom-right without touching 'x'.
a) You can only move right or move down. (BFS or DP)
b) You can move in all 4 directions. (BFS)
11. CS basics. Thread & Process, address space, how memory mapped file works
, etc.
同时感谢版上大牛们的内推:mitbbsfanfan, xjm,虽然都没有去成...
最后祝大家找工作顺利!
h*****a
发帖数: 40
2
恭喜!
j**********3
发帖数: 3211
3
恭喜,请问是几年工作经验?
l*****v
发帖数: 122
4
Write a iterator to iterate a nested array.
能不能稍微详细讲下怎么运用stack的啊?
a***0
发帖数: 53
5
mark
s***c
发帖数: 639
6
第一题如果是用cpp,输入咋个弄法

【在 k******4 的大作中提到】
: 为了防止违反NDA,就不列出公司名了,就是一些常见公司。
: 1. Write a iterator to iterate a nested array.
: For example, for given array: [1, 2, [3, [4, 5], [6, 7], 8], 9, 10]
: call iterator.next() 10 times should return 1,2,3,4,5,6,7,8,9,10.
: 用了stack存(array, index)的tuple。
: 2. LeetCode 原题,120 - Triange。有一点变种,给的是一维数组。
: 3. Implement HashTable 主要看dynamic expanding
: 4. Implement MaxHeap.
: 5. Topology sort,就是版上常见的给一些排过序的未知语言的词,求该语言的字母序
: 。要求实现核心算法。可以给出一些helper function定义不需实现。

a***0
发帖数: 53
7

请问hashmap用closed hashing可以么?

【在 k******4 的大作中提到】
: 为了防止违反NDA,就不列出公司名了,就是一些常见公司。
: 1. Write a iterator to iterate a nested array.
: For example, for given array: [1, 2, [3, [4, 5], [6, 7], 8], 9, 10]
: call iterator.next() 10 times should return 1,2,3,4,5,6,7,8,9,10.
: 用了stack存(array, index)的tuple。
: 2. LeetCode 原题,120 - Triange。有一点变种,给的是一维数组。
: 3. Implement HashTable 主要看dynamic expanding
: 4. Implement MaxHeap.
: 5. Topology sort,就是版上常见的给一些排过序的未知语言的词,求该语言的字母序
: 。要求实现核心算法。可以给出一些helper function定义不需实现。

d**********o
发帖数: 279
8
没想出怎么用stack, 大牛讲解一下?
"""
Write a iterator to iterate a nested array.
For example, for given array: [1, 2, [3, [4, 5], [6, 7], 8], 9, 10]
call iterator.next() 10 times should return 1,2,3,4,5,6,7,8,9,10.
"""
def traverse(l):
if not l:
return
for i in l:
if isinstance(i, list):
traverse(i)
else:
print i
class NestIterator(object):
def __init__(self, l):
self.l = l
self.cur = -1
self.iterator = None

def next(self):
if self.iterator and self.iterator._has_next_element():
return self.iterator.next()
else:
self.iterator = None
if self.cur >= len(self.l)-1:
return None
self.cur += 1
if isinstance(self.l[self.cur], list):
self.iterator = NestIterator(self.l[self.cur])
if self.iterator._has_next_element():
return self.iterator.next()
else:
self.iterator = None
if self._has_next_element():
return self.next()
else:
return None
else:
return self.l[self.cur]
def _has_next_element(self):
"""It is impossible to know if there is next value."""
if (self.cur + 1 <= len(self.l) - 1 or
bool(self.iterator and self.iterator._has_next_element())):
return True
return False
def print_with_iter(l):
iter = NestIterator(l)
for i in range(100):
ele = iter.next()
if ele:
print 'output:', ele
print '================'
if __name__=='__main__':
traverse([1, 2, [3, [4, 5], [6, 7], 8], 9, 10])
print_with_iter([1, 2, [3, [4, 5], [6, 7], 8], 9, 10])
print_with_iter([1, 2, [], [3, [4, 5], [6, 7], 8], 9, [11, 12, 15],10, []])

数据验证:
output: 1
output: 2
output: 3
output: 4
output: 5
output: 6
output: 7
output: 8
output: 9
output: 10
================
output: 1
output: 2
output: 3
output: 4
output: 5
output: 6
output: 7
output: 8
output: 9
output: 11
output: 12
output: 15
output: 10
================
q*****a
发帖数: 237
9
恭喜!
k******4
发帖数: 7
10
哈哈,我当时面的时候也随口说了一句,这题cpp不好搞啊,结果他说well, let's do
it in cpp then. 当时心里一万个草泥马奔腾啊!
其实cpp需要一个好的表示方式,代码写起来倒也还简单,就是构造数组比较费行数。
mitbbs代码太难看了,放到gist上:
https://gist.github.com/anonymous/9bcbe32ed4405fa7978f

【在 s***c 的大作中提到】
: 第一题如果是用cpp,输入咋个弄法
相关主题
问一道题(9)亚麻新鲜面经
Facebook onsite 个人认为巨难的一道题,请大牛们来评估下Amazon面经
面经分享请教onsite一道题
进入JobHunting版参与讨论
k******4
发帖数: 7
11
这个和tree的iterator是一样的,stack里放(数组,当前下标)。一开始把整个数据放
进去,下标是0。next()的时候看当前元素是数字还是数组。如果是数字就输出,是数
组的话把数组push到stack里去。当前数组做完了就pop出来。记得正确更新下标就行了。
代码见:
https://gist.github.com/anonymous/9bcbe32ed4405fa7978f

【在 l*****v 的大作中提到】
: Write a iterator to iterate a nested array.
: 能不能稍微详细讲下怎么运用stack的啊?

f*******5
发帖数: 52
12
如果用python的话stack里不用放当前下标。当栈顶是数组的话就弹出数组, 然后逆序
入栈。以下是python代码,假定只有list 和 basic type 两种类型
class ListIter(object):
def __init__(self, lst):
self.stack = [lst]
def next(self):
if len(self.stack) == 0:
raise StopIteration
while isinstance(self.stack[-1],list):
l = self.stack.pop()
self.stack.extend([i for i in reversed(l) if not isinstance(i,
list) or len(i)>0])
if len(self.stack) == 0:
raise StopIteration
return self.stack.pop()
def __iter__(self):
return self
v********a
发帖数: 155
13
不需要用stack,两个指针足够。
class Iterator:

def __init__(self, arr):
self.arr = arr
self.major = 0
self.minor = -1

def next(self):
if type(self.arr[self.major]) != list:
val = self.arr[self.major]
self.major += 1
self.minor = -1
return val
else:
self.minor += 1
if self.minor >= len(self.arr[self.major]):
self.major += 1
self.minor = -1
return self.next()
else:
val = self.arr[self.major][self.minor]
return val

def hasNext(self):
#print self.major, self.minor, '////////////'
if self.major >= len(self.arr):
return False
elif self.major == len(self.arr) - 1:
if type(self.arr[-1]) == list and self.minor >= len(self.arr[-1]
) - 1:
return False
return True
d**********o
发帖数: 279
14
原来大家都喜欢python啊, 哈哈
不过明显stack 的清晰很多。 我还是和大牛有很大差距。
c*********n
发帖数: 1057
15
楼主能不能说下8的解法?还有时间复杂度?这种要递归的怎么分析复杂度我一直不太
会。还有9的复杂度?
r****t
发帖数: 10904
16
第一题最简,最快写法应该是这样,直接了当。
太多人把 python 当 java 写了,除非限制了不让递归。
def iflatten(iterable):
for item in iterable:
try:
for j in iflatten(item):
yield j
except TypeError:
yield item
except StopIteration:
continue
array = [1, 2, [3, [4, 5], [6, 7], 8], 9, 10]
print array
for i in iflatten(array):
print i
1 (共1页)
进入JobHunting版参与讨论
相关主题
Palantir面经An interview question of finding the median in a moving window.
G家onsite后求祝福问一道题(9)
G家面完2周,有人跟我一样有类似情况吗?Facebook onsite 个人认为巨难的一道题,请大牛们来评估下
问linkedin家一道题的followup面经分享
问一个linkedin的面试题亚麻新鲜面经
请问一道面试题Iterator over nested collectionsAmazon面经
Groupon 电面请教onsite一道题
谁有那个 nested hashmap iteration 的讨论阿?Y! onsite新鲜面经
相关话题的讨论汇总
话题: output话题: return话题: def话题: array话题: __