由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - G家全部面经
相关主题
onsite面试问题一道问一个题目,谢谢。
eBay SDET 电面面经讨论一道图论题
帕兰提尔 电面面经一个图论题
小公司onsite面经(求bless)再问个amazon面试题
我今年的第一次面试,恶心坏了请教一个题目
问tree的iterative traversal10分钟前T家电面面经
ebay search组面经,估计要挂一道电面题
如何判断两个BST的元素是一样的?Amazon onsite面经加求祝福
相关话题的讨论汇总
话题: 节点话题: root话题: node话题: int话题: follow
进入JobHunting版参与讨论
1 (共1页)
i****7
发帖数: 26
1
电面1:
顺序统计树,找第K个节点。
电面2:
1)打印000到123所有的数,follow up,打印a到b所有的数(假设每一位都a<=b)
2)Next permutation
3)栅栏N个木片,每一片可以刷两种颜色,相临三片不能同色,问几种刷法。
Onsite:
1)一堆interval,有叠加,给一个值,查询在不在这堆interval里(会调用很多次)
Follow up, 给一个值,查询多少个interval包含这个值(会调用很多次)
(国人大哥面的,可能会看到这个帖子,非常感谢,做题的时候给了很多引导。)
2)一个有向图,找出互相指向的点对数,(e.g. A指向B,B指向A,算一对)
Follow up, 写一个类,这个图会变化(加点,删点,加边,删边),维护这样的
点对数。
Follow up, 扯了扯大数据时候怎么分配到各个计算机上。
3)论文演讲
4)家族树,每个点左右指针指向自己的父亲和母亲,每个点存对应二叉堆的索引。
A)给一个这种树,给每个点标出对应二叉堆的索引值。
B)任意给一个节点(不需要输入根节点),输出这个点所在的层数。
C)任意给一个节点(不需要输入根节点),输出这个点和根节点的关系(e.g. 是
根节点父亲的母亲就输出“MF”)。
5)两道LC原题 1. Anagram 2. Reverse bit
直接给出最优解还不断让优化,优化涉及到系统设计。
l********r
发帖数: 7
2
第四题不太明白意思。
是说这个家族树自身是个二叉堆?
i****7
发帖数: 26
3
嗯,差不多,把二叉树看成二叉堆后,每个节点有个index,这个index存成节点的一个域

【在 l********r 的大作中提到】
: 第四题不太明白意思。
: 是说这个家族树自身是个二叉堆?

l********r
发帖数: 7
4
每一片可以刷两种颜色,相临三片不能同色这题,组合数学还是别的递推?
1.离散化+线段树(多个值域记次数,query走到底求和),构造O(n),每次query O(
log n)
2.一个hashmap存所有边,一个邻接表存对数的边和数量。
删点O(n),其他O(1)
4.A)递归dfs,O(n) B和C)堆性质向上走,O(log n)
有啥猫腻么?
n******n
发帖数: 12088
5
电面一是用顺序统计树查询k因素?

【在 l********r 的大作中提到】
: 每一片可以刷两种颜色,相临三片不能同色这题,组合数学还是别的递推?
: 1.离散化+线段树(多个值域记次数,query走到底求和),构造O(n),每次query O(
: log n)
: 2.一个hashmap存所有边,一个邻接表存对数的边和数量。
: 删点O(n),其他O(1)
: 4.A)递归dfs,O(n) B和C)堆性质向上走,O(log n)
: 有啥猫腻么?

c******n
发帖数: 4965
6
000 到 123 s是什么意思?

【在 i****7 的大作中提到】
: 电面1:
: 顺序统计树,找第K个节点。
: 电面2:
: 1)打印000到123所有的数,follow up,打印a到b所有的数(假设每一位都a<=b)
: 2)Next permutation
: 3)栅栏N个木片,每一片可以刷两种颜色,相临三片不能同色,问几种刷法。
: Onsite:
: 1)一堆interval,有叠加,给一个值,查询在不在这堆interval里(会调用很多次)
: Follow up, 给一个值,查询多少个interval包含这个值(会调用很多次)
: (国人大哥面的,可能会看到这个帖子,非常感谢,做题的时候给了很多引导。)

i****7
发帖数: 26
7
DP

【在 l********r 的大作中提到】
: 每一片可以刷两种颜色,相临三片不能同色这题,组合数学还是别的递推?
: 1.离散化+线段树(多个值域记次数,query走到底求和),构造O(n),每次query O(
: log n)
: 2.一个hashmap存所有边,一个邻接表存对数的边和数量。
: 删点O(n),其他O(1)
: 4.A)递归dfs,O(n) B和C)堆性质向上走,O(log n)
: 有啥猫腻么?

i****7
发帖数: 26
8
输入:root和K
输出:inorder第K个node

【在 n******n 的大作中提到】
: 电面一是用顺序统计树查询k因素?
i****7
发帖数: 26
9
000
001
002
003
010
011
...
...
122
123
一般化是a到b所有数,
a,b的每一位是上界和下界,
不好意思,没说清楚,假设是a的每一位<=b的对应位

【在 c******n 的大作中提到】
: 000 到 123 s是什么意思?
x********u
发帖数: 1150
10
mark, 有点难度哦.
相关主题
问tree的iterative traversal问一个题目,谢谢。
ebay search组面经,估计要挂讨论一道图论题
如何判断两个BST的元素是一样的?一个图论题
进入JobHunting版参与讨论
b******i
发帖数: 914
11
Hi,
问一下,000到123这题,输入是string还是int呢?
哈有onsite 1)你是怎么做的?多谢啦!

【在 i****7 的大作中提到】
: 电面1:
: 顺序统计树,找第K个节点。
: 电面2:
: 1)打印000到123所有的数,follow up,打印a到b所有的数(假设每一位都a<=b)
: 2)Next permutation
: 3)栅栏N个木片,每一片可以刷两种颜色,相临三片不能同色,问几种刷法。
: Onsite:
: 1)一堆interval,有叠加,给一个值,查询在不在这堆interval里(会调用很多次)
: Follow up, 给一个值,查询多少个interval包含这个值(会调用很多次)
: (国人大哥面的,可能会看到这个帖子,非常感谢,做题的时候给了很多引导。)

i****7
发帖数: 26
12
000到123用的int
follow up用的string
onsite 1)
第一问,LC原题,sort, merge, query时候binary search
第二问,每个开始点标正,结束点标负,然后sort所有点,
query的时候binary search,算这个位置左边几个正,几个负(这个可以
preprocess)
(类似会议室问题)

【在 b******i 的大作中提到】
: Hi,
: 问一下,000到123这题,输入是string还是int呢?
: 哈有onsite 1)你是怎么做的?多谢啦!

c******n
发帖数: 4965
13
哦,那还是很好的题, 不算难 也有点意义。
recursive(int low[], int []high, int pos) {
if (pos == low.length) {
// print out answer or add answer to list
}
for(int candidate=low[pos];candidate<=high[pos];candidate++) {
answer[pos] = candidate;
recursive(low,high, pos+1);
}
}

【在 i****7 的大作中提到】
: 000
: 001
: 002
: 003
: 010
: 011
: ...
: ...
: 122
: 123

b******i
发帖数: 914
14
谢谢
onsite 1)我的大体思路和你差不多,除了的第二问,query的话我就想到从头开始++
--。不知道你binary search以后算这个位置左边几个正几个负怎么preprocess?

【在 i****7 的大作中提到】
: 000到123用的int
: follow up用的string
: onsite 1)
: 第一问,LC原题,sort, merge, query时候binary search
: 第二问,每个开始点标正,结束点标负,然后sort所有点,
: query的时候binary search,算这个位置左边几个正,几个负(这个可以
: preprocess)
: (类似会议室问题)

h****3
发帖数: 89
15
有人能具体指点一下电面一怎么写吗?
n******n
发帖数: 12088
16
CLRS

【在 h****3 的大作中提到】
: 有人能具体指点一下电面一怎么写吗?
h****3
发帖数: 89
17
谢谢
原来是放在了augmenting data structure 里面。。

【在 n******n 的大作中提到】
: CLRS
s********l
发帖数: 998
18
>_<
电面第一题 是什么一丝啊?
顺序统计树,找第K个节点

【在 i****7 的大作中提到】
: 电面1:
: 顺序统计树,找第K个节点。
: 电面2:
: 1)打印000到123所有的数,follow up,打印a到b所有的数(假设每一位都a<=b)
: 2)Next permutation
: 3)栅栏N个木片,每一片可以刷两种颜色,相临三片不能同色,问几种刷法。
: Onsite:
: 1)一堆interval,有叠加,给一个值,查询在不在这堆interval里(会调用很多次)
: Follow up, 给一个值,查询多少个interval包含这个值(会调用很多次)
: (国人大哥面的,可能会看到这个帖子,非常感谢,做题的时候给了很多引导。)

h****3
发帖数: 89
19
算法导论的340 - 341 页,我也刚找到

【在 s********l 的大作中提到】
: >_<
: 电面第一题 是什么一丝啊?
: 顺序统计树,找第K个节点

i****7
发帖数: 26
20
preprocess就是sort以后走一遍,每个点左边几个正的,几个负的都记录一下。
如果没有preprocess,每次query都数一下,复杂度是O(n)
有了preprocess,每次query只有binary search,复杂度是O(logn)

+

【在 b******i 的大作中提到】
: 谢谢
: onsite 1)我的大体思路和你差不多,除了的第二问,query的话我就想到从头开始++
: --。不知道你binary search以后算这个位置左边几个正几个负怎么preprocess?

相关主题
再问个amazon面试题一道电面题
请教一个题目Amazon onsite面经加求祝福
10分钟前T家电面面经新鲜出炉的 Google Onsite 面经并求祝福
进入JobHunting版参与讨论
i****7
发帖数: 26
21
不用知道这个名字,面试的时候他给定义,
就是BST每个节点新加一个域,存的是从这个点开始的子树的节点个数。
我用的recursion, O(logn),很简单,别想复杂了。

【在 s********l 的大作中提到】
: >_<
: 电面第一题 是什么一丝啊?
: 顺序统计树,找第K个节点

b*****d
发帖数: 39
22
楼主可以详细解释一下onsite的第二个问嘛?图的输入是什么?是1->2, 2->3这样的吗
?这个是怎么做++,--排序的呢?谢谢啦
i****7
发帖数: 26
23
图那题很随意,自己设计数据结构,我就怎么方便怎么来,
我用的C++,用的unordered_map>

【在 b*****d 的大作中提到】
: 楼主可以详细解释一下onsite的第二个问嘛?图的输入是什么?是1->2, 2->3这样的吗
: ?这个是怎么做++,--排序的呢?谢谢啦

l*k
发帖数: 10
24
栅栏这个,是 2F(n) 吗? F(n)是第n个斐波那契数。

【在 i****7 的大作中提到】
: 电面1:
: 顺序统计树,找第K个节点。
: 电面2:
: 1)打印000到123所有的数,follow up,打印a到b所有的数(假设每一位都a<=b)
: 2)Next permutation
: 3)栅栏N个木片,每一片可以刷两种颜色,相临三片不能同色,问几种刷法。
: Onsite:
: 1)一堆interval,有叠加,给一个值,查询在不在这堆interval里(会调用很多次)
: Follow up, 给一个值,查询多少个interval包含这个值(会调用很多次)
: (国人大哥面的,可能会看到这个帖子,非常感谢,做题的时候给了很多引导。)

y******e
发帖数: 203
25
onsite的第一题,可以参考guava里面的TreeRangeSet吧,
https://github.com/google/guava/blob/master/guava/src/com/google/common/
collect/TreeRangeSet.java
s********l
发帖数: 998
26
hmm...
我怎么觉得 不用在每个节点加个value啊~
设一个counter
用stack in order traverse 然后update 这个count不就行了~

【在 i****7 的大作中提到】
: 不用知道这个名字,面试的时候他给定义,
: 就是BST每个节点新加一个域,存的是从这个点开始的子树的节点个数。
: 我用的recursion, O(logn),很简单,别想复杂了。

s********l
发帖数: 998
27
onsite 1)
是lc的那道题啊? 不记得呢。。。
s********l
发帖数: 998
28
电面2:
3)栅栏N个木片,每一片可以刷两种颜色,相临三片不能同色,问几种刷法。
这个题 有没有一共多少种颜色的限制?

【在 i****7 的大作中提到】
: 电面1:
: 顺序统计树,找第K个节点。
: 电面2:
: 1)打印000到123所有的数,follow up,打印a到b所有的数(假设每一位都a<=b)
: 2)Next permutation
: 3)栅栏N个木片,每一片可以刷两种颜色,相临三片不能同色,问几种刷法。
: Onsite:
: 1)一堆interval,有叠加,给一个值,查询在不在这堆interval里(会调用很多次)
: Follow up, 给一个值,查询多少个interval包含这个值(会调用很多次)
: (国人大哥面的,可能会看到这个帖子,非常感谢,做题的时候给了很多引导。)

i****7
发帖数: 26
29
好像有点像,不太记得了,反正就是分成最后两片一样和最后两片不一样,
然后递推就很明朗了。

【在 l*k 的大作中提到】
: 栅栏这个,是 2F(n) 吗? F(n)是第n个斐波那契数。
i****7
发帖数: 26
30
每个点加的域是他给的条件,
用上条件复杂度是O(logn)
不用条件复杂度是O(n)
当然用了

【在 s********l 的大作中提到】
: hmm...
: 我怎么觉得 不用在每个节点加个value啊~
: 设一个counter
: 用stack in order traverse 然后update 这个count不就行了~

相关主题
a 面经eBay SDET 电面面经
帖一个RF的题目求bless帕兰提尔 电面面经
onsite面试问题一道小公司onsite面经(求bless)
进入JobHunting版参与讨论
i****7
发帖数: 26
31
LC merge interval那道题再加上binary search的扩展

【在 s********l 的大作中提到】
: onsite 1)
: 是lc的那道题啊? 不记得呢。。。

i****7
发帖数: 26
32
总共就两颜色,e.g. red and blue

【在 s********l 的大作中提到】
: 电面2:
: 3)栅栏N个木片,每一片可以刷两种颜色,相临三片不能同色,问几种刷法。
: 这个题 有没有一共多少种颜色的限制?

n******n
发帖数: 12088
33
复杂度不一样吧

【在 s********l 的大作中提到】
: hmm...
: 我怎么觉得 不用在每个节点加个value啊~
: 设一个counter
: 用stack in order traverse 然后update 这个count不就行了~

j******6
发帖数: 2
34
题目不难,可是要在10分钟里完成思路和实现呀。
q******6
发帖数: 4
35
谢谢分享
A*******e
发帖数: 2419
36
1)一堆interval,有叠加,给一个值,查询在不在这堆interval里(会调用很多次)
Follow up, 给一个值,查询多少个interval包含这个值(会调用很多次)
follow-up包含了第一问吧?
先给区间每个端点排序,再从左向右扫描?如果是左端点计数加1,右端点计数-1,每
个端点记录当前的计数值,重复端点叠加。
然后二分查询找最后一个小于等于查询值的端点,计数值就是有几个interval包含它。

【在 i****7 的大作中提到】
: 电面1:
: 顺序统计树,找第K个节点。
: 电面2:
: 1)打印000到123所有的数,follow up,打印a到b所有的数(假设每一位都a<=b)
: 2)Next permutation
: 3)栅栏N个木片,每一片可以刷两种颜色,相临三片不能同色,问几种刷法。
: Onsite:
: 1)一堆interval,有叠加,给一个值,查询在不在这堆interval里(会调用很多次)
: Follow up, 给一个值,查询多少个interval包含这个值(会调用很多次)
: (国人大哥面的,可能会看到这个帖子,非常感谢,做题的时候给了很多引导。)

A*******e
发帖数: 2419
37
2)一个有向图,找出互相指向的点对数,(e.g. A指向B,B指向A,算一对)
Follow up, 写一个类,这个图会变化(加点,删点,加边,删边),维护这样的
点对数。
Follow up, 扯了扯大数据时候怎么分配到各个计算机上。
有向社交图,类似微博找互相关注。
每个节点维护一个关注对象,数组、链表、BST,或散列。
对节点A遍历对象,看对象节点是否指向自己。
加点时不会加边把?这样计数不变。
删点时先查有多少互相关注,减去。
加减边时看情况加减1或不变。
有向社交图分布存储问题。能想到的几点:
1. 互相关注的对象尽量放在一台机器上?互相关注会形成完全图,但完全图太大时还
是得分开。
2. 受关注多的名人分开放,或有镜像,免得一台宕机,多数用户受影响。
还有啥?

【在 A*******e 的大作中提到】
: 1)一堆interval,有叠加,给一个值,查询在不在这堆interval里(会调用很多次)
: Follow up, 给一个值,查询多少个interval包含这个值(会调用很多次)
: follow-up包含了第一问吧?
: 先给区间每个端点排序,再从左向右扫描?如果是左端点计数加1,右端点计数-1,每
: 个端点记录当前的计数值,重复端点叠加。
: 然后二分查询找最后一个小于等于查询值的端点,计数值就是有几个interval包含它。

A*******e
发帖数: 2419
38
4)家族树,每个点左右指针指向自己的父亲和母亲,每个点存对应二叉堆的索引。
A)给一个这种树,给每个点标出对应二叉堆的索引值。
B)任意给一个节点(不需要输入根节点),输出这个点所在的层数。
C)任意给一个节点(不需要输入根节点),输出这个点和根节点的关系(e.g. 是
根节点父亲的母亲就输出“MF”)。
// 编码从0开始。
void SetParent(Node* root) {
if (root == nullptr) return;
root->id = 0;
SetParentHelper(root);
}
void SetParentHelper(Node* root) {
if (root->father != nullptr) {
root->father = root->id * 2 + 1;
SetParentHelper(root->father);
}
if (root->mother != nullptr) {
root->mother = root->id * 2 + 2;
SetParentHelper(root->mother);
}
}
int GetLevel(Node* node) {
assert(node != nullptr);
int level = 0;
int id = node->id + 1;
while ((id /= 2) > 0) {
++level;
}
return level;
}
string GetParentChain(Node* node) {
assert(node != nullptr);
string chain;
int id = node->id + 1;
int d = id / 2;
int m = id % 2;
while (d > 0) {
chain.push_back(m == 0 ? 'F' : 'M');
d /= 2;
m = d % 2;
}
}

【在 A*******e 的大作中提到】
: 2)一个有向图,找出互相指向的点对数,(e.g. A指向B,B指向A,算一对)
: Follow up, 写一个类,这个图会变化(加点,删点,加边,删边),维护这样的
: 点对数。
: Follow up, 扯了扯大数据时候怎么分配到各个计算机上。
: 有向社交图,类似微博找互相关注。
: 每个节点维护一个关注对象,数组、链表、BST,或散列。
: 对节点A遍历对象,看对象节点是否指向自己。
: 加点时不会加边把?这样计数不变。
: 删点时先查有多少互相关注,减去。
: 加减边时看情况加减1或不变。

1 (共1页)
进入JobHunting版参与讨论
相关主题
Amazon onsite面经加求祝福我今年的第一次面试,恶心坏了
新鲜出炉的 Google Onsite 面经并求祝福问tree的iterative traversal
a 面经ebay search组面经,估计要挂
帖一个RF的题目求bless如何判断两个BST的元素是一样的?
onsite面试问题一道问一个题目,谢谢。
eBay SDET 电面面经讨论一道图论题
帕兰提尔 电面面经一个图论题
小公司onsite面经(求bless)再问个amazon面试题
相关话题的讨论汇总
话题: 节点话题: root话题: node话题: int话题: follow