l******n 发帖数: 30 | 1 1. recruiter
2. host manager 老墨? 讲项目,behavior,问了一道 brain storm 所有翻转数组的
方法
3. technical communication 两白男,讲项目
4. lunch 国人小哥,直接中文聊天
5. coding 一中一印,(1) product without the element itself, 我先讲了不用除法的
方法, 然后是用除法的方法,需要考虑没有0,一个0和多于一个0的情况 (2) 判断一个
graph 是不是 bipartite, 我用了 BFS 的方法,起始结点标左边,然后相邻标右边,
再相邻标左边,如顺利标完则是 bipartite,发现冲突则不是
6. system design: tiny URL. 先写了 URL 表示,数据模型。然后聊了后端存储,
NoSQL,怎么 partition,怎么判重。然后聊了 cache 和前端的 LB。
7. coding 同样一中一印, (1) 找出DNA序列中出现多以一次的长度为10的碱基序列,
和面试官讨论最后用bitmap实现。(2) 两个排序数组找 intersection,并要求去重。
直接
合并完成。
所有的 code 都写完,并且按复杂程度分解成小功能的函数,从宏观到微观写。写
code 用了 python,会不会有面试官觉得 python 有些 cheating?
recruiter是三妈,完全不提供feedback,只是说了一些general的原因,觉得都不是很
符合。
求分析失败的原因。 | b*******w 发帖数: 56 | 2 楼主辛苦.是不是和host manager没聊好? 话说翻转数组是什么意思 | l******n 发帖数: 30 | 3 就是看能想出多少种方法翻转链表,比如两个指针交换,用栈先压进去再弹出来,分治
等等
聊得好不好还真难说。host manager感觉不太喜怒形于色的那种 | l******s 发帖数: 3045 | 4 5.1是without itself吧
【在 l******n 的大作中提到】 : 1. recruiter : 2. host manager 老墨? 讲项目,behavior,问了一道 brain storm 所有翻转数组的 : 方法 : 3. technical communication 两白男,讲项目 : 4. lunch 国人小哥,直接中文聊天 : 5. coding 一中一印,(1) product without the element itself, 我先讲了不用除法的 : 方法, 然后是用除法的方法,需要考虑没有0,一个0和多于一个0的情况 (2) 判断一个 : graph 是不是 bipartite, 我用了 BFS 的方法,起始结点标左边,然后相邻标右边, : 再相邻标左边,如顺利标完则是 bipartite,发现冲突则不是 : 6. system design: tiny URL. 先写了 URL 表示,数据模型。然后聊了后端存储,
| b*******w 发帖数: 56 | 5 确实当manager的一般很城府, 不容易看出来怎么想的
【在 l******n 的大作中提到】 : 就是看能想出多少种方法翻转链表,比如两个指针交换,用栈先压进去再弹出来,分治 : 等等 : 聊得好不好还真难说。host manager感觉不太喜怒形于色的那种
| l******n 发帖数: 30 | 6 对,写错了。好像 L 家基本必面这题。还有 URL shortener 也常面
【在 l******s 的大作中提到】 : 5.1是without itself吧
| s*****r 发帖数: 43070 | 7 也不一定是manager,可能是比较有资历的engineer,权重比较大,主要看人是否能
culture fit,有些时候有一票否决权
【在 b*******w 的大作中提到】 : 确实当manager的一般很城府, 不容易看出来怎么想的
| l*****a 发帖数: 14598 | 8 5.1)他要求你用除法?
5.2)你说的很简单,不上code根本无法帮你判断,比方说遍历过的点你怎么处理的
7.1)呢,how to use bitmap?另外这题是不是该用rolling hash..
7.2)咋写的?
【在 l******n 的大作中提到】 : 1. recruiter : 2. host manager 老墨? 讲项目,behavior,问了一道 brain storm 所有翻转数组的 : 方法 : 3. technical communication 两白男,讲项目 : 4. lunch 国人小哥,直接中文聊天 : 5. coding 一中一印,(1) product without the element itself, 我先讲了不用除法的 : 方法, 然后是用除法的方法,需要考虑没有0,一个0和多于一个0的情况 (2) 判断一个 : graph 是不是 bipartite, 我用了 BFS 的方法,起始结点标左边,然后相邻标右边, : 再相邻标左边,如顺利标完则是 bipartite,发现冲突则不是 : 6. system design: tiny URL. 先写了 URL 表示,数据模型。然后聊了后端存储,
| o****n 发帖数: 937 | | j**********3 发帖数: 3211 | 10 原因就是,人家bar高了,跟你没关系。没看隔壁帖子里写了么? | | | l******n 发帖数: 30 | 11 5.1 先说了时间O(n)空间O(n),面试官要求时间O(n)空间O(1), 只想到了做除法。一开
始写得时候没考虑 0,后来面试官提示有没有 edge case 才加上的。估计减分了。
5.2 用一个哈希表 visited 保存访问过的节点,另一个哈希表保存节点分在那一侧
7.1 由于长度为10的碱基序列总状态为4^10,可以用长度为4^10的 bitmap 保存是不是
遇见过。请问 rolling hash 怎么做?
7.2 比如有排序数组 xs1 = [1, 2, 4], xs2 = [2, 2, 5], 先对每个元素加标记表明
来自哪个数组 xs1 = [(1, 1), (2, 1), (4, 1)] xs2 = [(2, 2), (2, 2), (5, 2)]
然后对排序数组进行 merge。比较当前和前一个是不是相等且来自不同数组,如果是,
再检查是不是和 result 中最后一个相等,如果不是则 append 到 result.
【在 l*****a 的大作中提到】 : 5.1)他要求你用除法? : 5.2)你说的很简单,不上code根本无法帮你判断,比方说遍历过的点你怎么处理的 : 7.1)呢,how to use bitmap?另外这题是不是该用rolling hash.. : 7.2)咋写的?
| l******n 发帖数: 30 | 12 不是,名字就不透露了 :-D
【在 o****n 的大作中提到】 : 老莫?fernandez?
| c*******t 发帖数: 123 | 13 大哥,4^10是多大的数啊?2的20次方,2的9次方就1GB了啊。
每个碱基可以用00,01,10,11中得三个表示,一共只需要2*10=20bit的空间。
【在 l******n 的大作中提到】 : 5.1 先说了时间O(n)空间O(n),面试官要求时间O(n)空间O(1), 只想到了做除法。一开 : 始写得时候没考虑 0,后来面试官提示有没有 edge case 才加上的。估计减分了。 : 5.2 用一个哈希表 visited 保存访问过的节点,另一个哈希表保存节点分在那一侧 : 7.1 由于长度为10的碱基序列总状态为4^10,可以用长度为4^10的 bitmap 保存是不是 : 遇见过。请问 rolling hash 怎么做? : 7.2 比如有排序数组 xs1 = [1, 2, 4], xs2 = [2, 2, 5], 先对每个元素加标记表明 : 来自哪个数组 xs1 = [(1, 1), (2, 1), (4, 1)] xs2 = [(2, 2), (2, 2), (5, 2)] : 然后对排序数组进行 merge。比较当前和前一个是不是相等且来自不同数组,如果是, : 再检查是不是和 result 中最后一个相等,如果不是则 append 到 result.
| J*********a 发帖数: 50 | 14
【在 l******n 的大作中提到】 : 5.1 先说了时间O(n)空间O(n),面试官要求时间O(n)空间O(1), 只想到了做除法。一开 : 始写得时候没考虑 0,后来面试官提示有没有 edge case 才加上的。估计减分了。 : 5.2 用一个哈希表 visited 保存访问过的节点,另一个哈希表保存节点分在那一侧 : 7.1 由于长度为10的碱基序列总状态为4^10,可以用长度为4^10的 bitmap 保存是不是 : 遇见过。请问 rolling hash 怎么做? : 7.2 比如有排序数组 xs1 = [1, 2, 4], xs2 = [2, 2, 5], 先对每个元素加标记表明 : 来自哪个数组 xs1 = [(1, 1), (2, 1), (4, 1)] xs2 = [(2, 2), (2, 2), (5, 2)] : 然后对排序数组进行 merge。比较当前和前一个是不是相等且来自不同数组,如果是, : 再检查是不是和 result 中最后一个相等,如果不是则 append 到 result.
| l******n 发帖数: 30 | 15 是用bitmap放遇见的所有碱基序列,不是一个。
4^10=1048576 bits= 131072 Bytes = 131KB
【在 c*******t 的大作中提到】 : 大哥,4^10是多大的数啊?2的20次方,2的9次方就1GB了啊。 : 每个碱基可以用00,01,10,11中得三个表示,一共只需要2*10=20bit的空间。
| c*******t 发帖数: 123 | 16 我错了。我搞成以10为底了。。。。
和lc上那道题有什么区别? 那道只要32bit
【在 l******n 的大作中提到】 : 是用bitmap放遇见的所有碱基序列,不是一个。 : 4^10=1048576 bits= 131072 Bytes = 131KB
| l******n 发帖数: 30 | 17 看了一下,好像没差(之前刷的是lintcode没这题)
32 bit 太牛了,咋做? | c*******t 发帖数: 123 | 18 你看看讨论就知道了。祝楼主好运,早日找到工作。 | m**********s 发帖数: 518 | 19 听说L家现在每一轮都过了,最后也不一定hire。应该是bar高了很多。 | J*********a 发帖数: 50 | 20 public List findRepeatedDnaSequences(String s) {
// A->00 C->01 G->10 T->11
List res = new ArrayList<>();
Map map = new HashMap<>();
for (int i = 0; i + 10 <= s.length(); i++) {
int key = hashFunc(s.substring(i, i + 10));
if (map.containsKey(key) && !map.get(key)) {
res.add(s.substring(i, i + 10));
map.put(key,true);
} else if (!map.containsKey(key)){
map.put(key, false);
}
}
return res;
}
public int hashFunc(String s) {
int res = 0;
for (int i = 0; i < s.length(); i++) {
int addOn;
if (s.charAt(i) == 'A') {
addOn = 0;
} else if (s.charAt(i) == 'C') {
addOn = 1;
} else if (s.charAt(i) == 'G') {
addOn = 2;
} else {
addOn = 3;
}
res = (res << 2) + addOn;
}
return res;
} | | | x********u 发帖数: 1150 | 21 别想太多, move on.
现在大家都刷题,三分运气是很重要的. | a********5 发帖数: 1631 | 22 我朋友让我代发建议:
原话:
总体LZ表现应该不错,但是有几个点在HM那很麻烦。
乘法那道题,HM一看会觉得LZ属于背题的,正常人不会按这个顺序和苏丽,尤其面试官
还没说能不能用除法的前提下。
LZ你确定每道题最后BUG FREE了?有时候没时间了面试官可能懒得继续指出BUG。 | l******n 发帖数: 30 | 23 有道理,看来今后得好好审题。
应该基本 bug free,大部分题面试官都开始 follow up bug 之外的东西了,比如怎么
省空间之类。
不过 graph bipartite 那题没见过,写完和面试官过了一遍代码就到时间了。
【在 a********5 的大作中提到】 : 我朋友让我代发建议: : 原话: : 总体LZ表现应该不错,但是有几个点在HM那很麻烦。 : 乘法那道题,HM一看会觉得LZ属于背题的,正常人不会按这个顺序和苏丽,尤其面试官 : 还没说能不能用除法的前提下。 : LZ你确定每道题最后BUG FREE了?有时候没时间了面试官可能懒得继续指出BUG。
| z***b 发帖数: 127 | 24 有排序数组 xs1 = [1, 2, 4], xs2 = [2, 2, 5]
这题结果是{1,2,4,5}?
这个不用比较啊,两个指针即可。 | n*****5 发帖数: 984 | | T******o 发帖数: 500 | 26 哟, 什么风把LDM吹来了?皮?
【在 n*****5 的大作中提到】 : L 家最近貌似bar很高,不怎么招人了。
|
|