avatar
真果迷都是买6的。# Apple - 家有苹果
d*j
1
面试官没提到题目不可以外泄,而且也都是常见的, 所以就在这里发了。
两轮电话面试都是45分钟,2道编程题,白板共享文档写程序。
简单寒暄5-10分钟,谈谈research,最近做的project等等。
然后直接告知共享文档link,写程序。
Round 1:
A. Given an arbitrary tree, can you print it level by level (with each level
printed on the same line).Define your own tree node structure, can be
binary tree or n-ary tree.
B. Given a set of distinct integers, can you print out all subsets?
Round 2:
A. Remove duplicated integers in an array, and then return an array without
duplicates. Follow up: what if allow duplicates at most twice?
i.e., [1, 1, 1, 2, 2, 3, 2] --> [1, 1, 2, 2, 3]
B. Given a string and a dictionary that maps a character to several
characters, print all combination and tell the complexity.
i.e., string = "face", f=> f, @, 4, h a=> a, c, e
print: face, @ace, 4ace, .....
大家再简单讨论一下,我再比较一下做的对不对。
都是很常见的问题,所以很快就program完了,结果还剩下不少时间。面试官就问有什么问题,我就简单问了3个左右,然后就完了。
现在Facebook还要来一次phone interview,说是最后一次了,晕死,本来就很紧张,还要来一轮,刺激死了。敢情是回答的太快,代码是抄的,我的理解了....
有谁知道facebook一般需要需要几轮电面啊?几轮on-site?
avatar
x*n
2
因为这是一种对理念的认同。
理念能随便改吗?
所以以后拿6 plus的,本人都拒绝认同该手机是苹果的,
贴10个logo都不行。
嗯。
avatar
j*x
3
题目这么简单,竟然不给我interview。。。
avatar
h*u
4
过几个月周围人,大街上全是6+的时候你也就认同了

【在 x*********n 的大作中提到】
: 因为这是一种对理念的认同。
: 理念能随便改吗?
: 所以以后拿6 plus的,本人都拒绝认同该手机是苹果的,
: 贴10个logo都不行。
: 嗯。

avatar
d*a
5
第一轮的第二题你怎么做的?看看你的程序。
第二轮的第一题用hash? 第二题就是电话键的变种吧。
avatar
C*l
6
看看自己的手,想想自己说过的话,默默的买了6
avatar
c*n
7
楼主第二轮的B是怎么考虑的呢?
avatar
p*e
8
扯淡,一看你就没用过苹果还来装蒜,勤打脸的才是真果粉。

【在 x*********n 的大作中提到】
: 因为这是一种对理念的认同。
: 理念能随便改吗?
: 所以以后拿6 plus的,本人都拒绝认同该手机是苹果的,
: 贴10个logo都不行。
: 嗯。

avatar
H*S
9
import java.util.ArrayList;
public ArrayList> uniqueSet(int[] a, int i) {
ArrayList retList = new ArrayList>();
if (i < 0) {
retList.add(new ArrayList);
return retList;
}
for (ArrayList list : uniqueSet(a, i - 1)) {
retList.add((ArrayList)(list.clone())); //ugly
list.add(new Integer(a[i]));
retList.add((ArrayList)(list.clone())); //ugly
}
return retList;
}

【在 d******a 的大作中提到】
: 第一轮的第二题你怎么做的?看看你的程序。
: 第二轮的第一题用hash? 第二题就是电话键的变种吧。

avatar
b*i
10
狂点头~~~!
avatar
d*j
11
第一轮第二题
电面之前刚好练过这道题,但是用ArrayList 和ArrayList of ArrayList 实现的,用
recrusive 的方法,返回前k个元素的幂集合之后,再复制一边添加当前k+1元素入每个
子集合。最终返回幂集之后在打印,效率不好。但是当时想都没想就写上去了。
面完了就想起,完全可以用一个等长的int数组来标识是否取当前元素,代码如下。(
Careercup有这道题,使用一个int数i的每一位来做标识,把i从0递增到2^32-1就能打
印出所有的subsets,但最多只能实现到32个数的数组)
public static void printPowerSet(int[] set) {
int[] index = new int[set.length];
int endidx = 0;
printPowerSetSolver(set, index, endidx);
}
public static void printPowerSetSolver(int[] set, int[] index, int endidx) {
if (endidx == set.length) {
printSet(set, index);
return;
}
index[endidx] = 0;
printPowerSetSolver(set, index, endidx + 1);
index[endidx] = 1;
printPowerSetSolver(set, index, endidx + 1);
}
public static void printSet(int[] set, int[] index) {
for (int i = 0; i < set.length; i++)
if (index[i] > 0)
System.out.print(set[i] + " ");
System.out.println();
}
第二轮
第一题是用的Hash
第二题是电话变种,我同样用recursive的方法,用endindex表示当前处理的位置,用
一个for loop来实现每个位置都能取遍所有的替代字符,然后就call itself。
avatar
b*r
12
不能同意更多,plus看着太山寨了
avatar
d*a
13
这个解法很清楚,谢谢。我还想问的是,如果要在n个数中找出m个数的组合(比如4个
数中找2个数的组合),用这种解法的话,应该改第三个函数就可以了吧?统计index数
组中1的个数为m个时再打印?

【在 d****j 的大作中提到】
: 第一轮第二题
: 电面之前刚好练过这道题,但是用ArrayList 和ArrayList of ArrayList 实现的,用
: recrusive 的方法,返回前k个元素的幂集合之后,再复制一边添加当前k+1元素入每个
: 子集合。最终返回幂集之后在打印,效率不好。但是当时想都没想就写上去了。
: 面完了就想起,完全可以用一个等长的int数组来标识是否取当前元素,代码如下。(
: Careercup有这道题,使用一个int数i的每一位来做标识,把i从0递增到2^32-1就能打
: 印出所有的subsets,但最多只能实现到32个数的数组)
: public static void printPowerSet(int[] set) {
: int[] index = new int[set.length];
: int endidx = 0;

avatar
I*t
14
6+应该是另一个系列,填补iPhone和iPad mini之间的空隙,而不是塞在iPhone里。
avatar
e*t
15
up
avatar
D*e
16
今天收到6的套子, 握在手里突然觉得再大一点儿就好了
avatar
d*u
17
第一轮第一题:BFS
第一轮第二题:DFS
第二轮第一题: 要看max输入有多大,小的话O(N),大的话O(NlogN),是我做的话,不用hash,直接改快排算法
第二轮第二题:DFS
avatar
c*t
18
嗯,再买一个plus的套子握吧。

【在 D****e 的大作中提到】
: 今天收到6的套子, 握在手里突然觉得再大一点儿就好了
avatar
v*n
19
请问哪里可以找到interview题库?谢谢!
avatar
D*e
20
plus的套子比6的要贵一块呢, 不划算

【在 c********t 的大作中提到】
: 嗯,再买一个plus的套子握吧。
avatar
d*j
21
Combination: 如果这样的话,有点大材小用了吧,一个是2^n的复杂度,另外一个是多
项式复杂度,只修改打印方程会浪费很多时间
我的想法,另外用一个数组value作参数存取被选中的数字,还是用recursive的方法,
用一个index来记录当前fill多少个数字了。
Base:如果达到了limit,直接打印value数组
Recursive: 当前需要fill的index可以选那些数字?用一个for loop实现,赋值给
value[index]一个可选的数字,然后call itself 来fill下一个位置。 由于是
combination,需要注意不能重复选以前的数字了,下一个位置永远是从之前选中的数
的后面数字里面选。所以,还需要一个参数来标注可选数字的起始点(原始数组中)。
这样的话,大概需要5个参数,2个数组,2个index,和选出数的limit。
我刚刚写了一下,这个思路code还是没问题的。注意边界条件和候选取值范围。
衍生的问题就是:Permutation
也是用类似的idea,但是比combination更简单,和powerset差不多,增加一个for loop
,recursive call 之后再reset当前的value。
多写几个recursive的问题以后,马上就能用到很多问题,改改迭代call之前或者之后
的赋值就能有很多变化。

【在 d******a 的大作中提到】
: 这个解法很清楚,谢谢。我还想问的是,如果要在n个数中找出m个数的组合(比如4个
: 数中找2个数的组合),用这种解法的话,应该改第三个函数就可以了吧?统计index数
: 组中1的个数为m个时再打印?

avatar
j*u
22
just wrote a non-recursive subset function in C#
static IList> GetSubsets(ISet set)
{
if (set == null)
throw new ArgumentNullException("set");
List> list = new List>();
var allElements = set.ToArray();
for (int i = 0; i < (1 << set.Count); ++i)
{
var subset = new HashSet();
int mask = i;
int index = 0;
while (mask > 0)
{
if ((mask & 0x1) != 0)
subset.Add(allElements[index]);
++index;
mask >>= 1;
}
list.Add(subset);
}

return list;
}

【在 d****j 的大作中提到】
: 第一轮第二题
: 电面之前刚好练过这道题,但是用ArrayList 和ArrayList of ArrayList 实现的,用
: recrusive 的方法,返回前k个元素的幂集合之后,再复制一边添加当前k+1元素入每个
: 子集合。最终返回幂集之后在打印,效率不好。但是当时想都没想就写上去了。
: 面完了就想起,完全可以用一个等长的int数组来标识是否取当前元素,代码如下。(
: Careercup有这道题,使用一个int数i的每一位来做标识,把i从0递增到2^32-1就能打
: 印出所有的subsets,但最多只能实现到32个数的数组)
: public static void printPowerSet(int[] set) {
: int[] index = new int[set.length];
: int endidx = 0;

avatar
l*a
23
1B就用PIE解法,不是很好吗?
也可以用下面说的字典解法(每步加一)
int不够的话就用个额外的数组,相对于时间复杂度
这个额外空间应该影响不大

【在 d****j 的大作中提到】
: 第一轮第二题
: 电面之前刚好练过这道题,但是用ArrayList 和ArrayList of ArrayList 实现的,用
: recrusive 的方法,返回前k个元素的幂集合之后,再复制一边添加当前k+1元素入每个
: 子集合。最终返回幂集之后在打印,效率不好。但是当时想都没想就写上去了。
: 面完了就想起,完全可以用一个等长的int数组来标识是否取当前元素,代码如下。(
: Careercup有这道题,使用一个int数i的每一位来做标识,把i从0递增到2^32-1就能打
: 印出所有的subsets,但最多只能实现到32个数的数组)
: public static void printPowerSet(int[] set) {
: int[] index = new int[set.length];
: int endidx = 0;

avatar
b*n
24
2-3轮电面 1轮onsite

level

【在 d****j 的大作中提到】
: 面试官没提到题目不可以外泄,而且也都是常见的, 所以就在这里发了。
: 两轮电话面试都是45分钟,2道编程题,白板共享文档写程序。
: 简单寒暄5-10分钟,谈谈research,最近做的project等等。
: 然后直接告知共享文档link,写程序。
: Round 1:
: A. Given an arbitrary tree, can you print it level by level (with each level
: printed on the same line).Define your own tree node structure, can be
: binary tree or n-ary tree.
: B. Given a set of distinct integers, can you print out all subsets?
: Round 2:

avatar
d*j
25
面试官没提到题目不可以外泄,而且也都是常见的, 所以就在这里发了。
两轮电话面试都是45分钟,2道编程题,白板共享文档写程序。
简单寒暄5-10分钟,谈谈research,最近做的project等等。
然后直接告知共享文档link,写程序。
Round 1:
A. Given an arbitrary tree, can you print it level by level (with each level
printed on the same line).Define your own tree node structure, can be
binary tree or n-ary tree.
B. Given a set of distinct integers, can you print out all subsets?
Round 2:
A. Remove duplicated integers in an array, and then return an array without
duplicates. Follow up: what if allow duplicates at most twice?
i.e., [1, 1, 1, 2, 2, 3, 2] --> [1, 1, 2, 2, 3]
B. Given a string and a dictionary that maps a character to several
characters, print all combination and tell the complexity.
i.e., string = "face", f=> f, @, 4, h a=> a, c, e
print: face, @ace, 4ace, .....
大家再简单讨论一下,我再比较一下做的对不对。
都是很常见的问题,所以很快就program完了,结果还剩下不少时间。面试官就问有什么问题,我就简单问了3个左右,然后就完了。
现在Facebook还要来一次phone interview,说是最后一次了,晕死,本来就很紧张,还要来一轮,刺激死了。敢情是回答的太快,代码是抄的,我的理解了....
有谁知道facebook一般需要需要几轮电面啊?几轮on-site?
avatar
j*x
26
题目这么简单,竟然不给我interview。。。
avatar
d*a
27
第一轮的第二题你怎么做的?看看你的程序。
第二轮的第一题用hash? 第二题就是电话键的变种吧。
avatar
c*n
28
楼主第二轮的B是怎么考虑的呢?
avatar
H*S
29
import java.util.ArrayList;
public ArrayList> uniqueSet(int[] a, int i) {
ArrayList retList = new ArrayList>();
if (i < 0) {
retList.add(new ArrayList);
return retList;
}
for (ArrayList list : uniqueSet(a, i - 1)) {
retList.add((ArrayList)(list.clone())); //ugly
list.add(new Integer(a[i]));
retList.add((ArrayList)(list.clone())); //ugly
}
return retList;
}

【在 d******a 的大作中提到】
: 第一轮的第二题你怎么做的?看看你的程序。
: 第二轮的第一题用hash? 第二题就是电话键的变种吧。

avatar
d*j
30
第一轮第二题
电面之前刚好练过这道题,但是用ArrayList 和ArrayList of ArrayList 实现的,用
recrusive 的方法,返回前k个元素的幂集合之后,再复制一边添加当前k+1元素入每个
子集合。最终返回幂集之后在打印,效率不好。但是当时想都没想就写上去了。
面完了就想起,完全可以用一个等长的int数组来标识是否取当前元素,代码如下。(
Careercup有这道题,使用一个int数i的每一位来做标识,把i从0递增到2^32-1就能打
印出所有的subsets,但最多只能实现到32个数的数组)
public static void printPowerSet(int[] set) {
int[] index = new int[set.length];
int endidx = 0;
printPowerSetSolver(set, index, endidx);
}
public static void printPowerSetSolver(int[] set, int[] index, int endidx) {
if (endidx == set.length) {
printSet(set, index);
return;
}
index[endidx] = 0;
printPowerSetSolver(set, index, endidx + 1);
index[endidx] = 1;
printPowerSetSolver(set, index, endidx + 1);
}
public static void printSet(int[] set, int[] index) {
for (int i = 0; i < set.length; i++)
if (index[i] > 0)
System.out.print(set[i] + " ");
System.out.println();
}
第二轮
第一题是用的Hash
第二题是电话变种,我同样用recursive的方法,用endindex表示当前处理的位置,用
一个for loop来实现每个位置都能取遍所有的替代字符,然后就call itself。
avatar
d*a
31
这个解法很清楚,谢谢。我还想问的是,如果要在n个数中找出m个数的组合(比如4个
数中找2个数的组合),用这种解法的话,应该改第三个函数就可以了吧?统计index数
组中1的个数为m个时再打印?

【在 d****j 的大作中提到】
: 第一轮第二题
: 电面之前刚好练过这道题,但是用ArrayList 和ArrayList of ArrayList 实现的,用
: recrusive 的方法,返回前k个元素的幂集合之后,再复制一边添加当前k+1元素入每个
: 子集合。最终返回幂集之后在打印,效率不好。但是当时想都没想就写上去了。
: 面完了就想起,完全可以用一个等长的int数组来标识是否取当前元素,代码如下。(
: Careercup有这道题,使用一个int数i的每一位来做标识,把i从0递增到2^32-1就能打
: 印出所有的subsets,但最多只能实现到32个数的数组)
: public static void printPowerSet(int[] set) {
: int[] index = new int[set.length];
: int endidx = 0;

avatar
d*u
32
第一轮第一题:BFS
第一轮第二题:DFS
第二轮第一题: 要看max输入有多大,小的话O(N),大的话O(NlogN),是我做的话,不用hash,直接改快排算法
第二轮第二题:DFS
avatar
v*n
33
请问哪里可以找到interview题库?谢谢!
avatar
d*j
34
Combination: 如果这样的话,有点大材小用了吧,一个是2^n的复杂度,另外一个是多
项式复杂度,只修改打印方程会浪费很多时间
我的想法,另外用一个数组value作参数存取被选中的数字,还是用recursive的方法,
用一个index来记录当前fill多少个数字了。
Base:如果达到了limit,直接打印value数组
Recursive: 当前需要fill的index可以选那些数字?用一个for loop实现,赋值给
value[index]一个可选的数字,然后call itself 来fill下一个位置。 由于是
combination,需要注意不能重复选以前的数字了,下一个位置永远是从之前选中的数
的后面数字里面选。所以,还需要一个参数来标注可选数字的起始点(原始数组中)。
这样的话,大概需要5个参数,2个数组,2个index,和选出数的limit。
我刚刚写了一下,这个思路code还是没问题的。注意边界条件和候选取值范围。
衍生的问题就是:Permutation
也是用类似的idea,但是比combination更简单,和powerset差不多,增加一个for loop
,recursive call 之后再reset当前的value。
多写几个recursive的问题以后,马上就能用到很多问题,改改迭代call之前或者之后
的赋值就能有很多变化。

【在 d******a 的大作中提到】
: 这个解法很清楚,谢谢。我还想问的是,如果要在n个数中找出m个数的组合(比如4个
: 数中找2个数的组合),用这种解法的话,应该改第三个函数就可以了吧?统计index数
: 组中1的个数为m个时再打印?

avatar
j*u
35
just wrote a non-recursive subset function in C#
static IList> GetSubsets(ISet set)
{
if (set == null)
throw new ArgumentNullException("set");
List> list = new List>();
var allElements = set.ToArray();
for (int i = 0; i < (1 << set.Count); ++i)
{
var subset = new HashSet();
int mask = i;
int index = 0;
while (mask > 0)
{
if ((mask & 0x1) != 0)
subset.Add(allElements[index]);
++index;
mask >>= 1;
}
list.Add(subset);
}

return list;
}

【在 d****j 的大作中提到】
: 第一轮第二题
: 电面之前刚好练过这道题,但是用ArrayList 和ArrayList of ArrayList 实现的,用
: recrusive 的方法,返回前k个元素的幂集合之后,再复制一边添加当前k+1元素入每个
: 子集合。最终返回幂集之后在打印,效率不好。但是当时想都没想就写上去了。
: 面完了就想起,完全可以用一个等长的int数组来标识是否取当前元素,代码如下。(
: Careercup有这道题,使用一个int数i的每一位来做标识,把i从0递增到2^32-1就能打
: 印出所有的subsets,但最多只能实现到32个数的数组)
: public static void printPowerSet(int[] set) {
: int[] index = new int[set.length];
: int endidx = 0;

avatar
l*a
36
1B就用PIE解法,不是很好吗?
也可以用下面说的字典解法(每步加一)
int不够的话就用个额外的数组,相对于时间复杂度
这个额外空间应该影响不大

【在 d****j 的大作中提到】
: 第一轮第二题
: 电面之前刚好练过这道题,但是用ArrayList 和ArrayList of ArrayList 实现的,用
: recrusive 的方法,返回前k个元素的幂集合之后,再复制一边添加当前k+1元素入每个
: 子集合。最终返回幂集之后在打印,效率不好。但是当时想都没想就写上去了。
: 面完了就想起,完全可以用一个等长的int数组来标识是否取当前元素,代码如下。(
: Careercup有这道题,使用一个int数i的每一位来做标识,把i从0递增到2^32-1就能打
: 印出所有的subsets,但最多只能实现到32个数的数组)
: public static void printPowerSet(int[] set) {
: int[] index = new int[set.length];
: int endidx = 0;

avatar
b*n
37
2-3轮电面 1轮onsite

level

【在 d****j 的大作中提到】
: 面试官没提到题目不可以外泄,而且也都是常见的, 所以就在这里发了。
: 两轮电话面试都是45分钟,2道编程题,白板共享文档写程序。
: 简单寒暄5-10分钟,谈谈research,最近做的project等等。
: 然后直接告知共享文档link,写程序。
: Round 1:
: A. Given an arbitrary tree, can you print it level by level (with each level
: printed on the same line).Define your own tree node structure, can be
: binary tree or n-ary tree.
: B. Given a set of distinct integers, can you print out all subsets?
: Round 2:

avatar
s*f
38
//A. Given an arbitrary tree, can you print it level by level (with each
level
//printed on the same line).Define your own tree node structure, can be
//binary tree or n-ary tree.
struct Node{
int d;
std::vector children;
};
void PrintByLevel(Node *r){
if (!r)
return;
std::queue q;
q.push(r);
int pre_count = 1;
int count = 0;
while (!q.empty()){
Node *p = q.front();
for (std::vector::const_iterator ci = p-
>children.begin(); ci != p->children.end(); ++ci){
q.push(*ci);
++count;
}
printf("%d ", p->d);
--pre_count;
if (pre_count < 1){
printf("\n");
pre_count = count;
count = 0;
}
}
}
//B. Given a set of distinct integers, can you print out all subsets?
void PrintAllSubsets(int in[], int len){
static std::vector v;
if (len < 1){
for (std::vector::const_iterator ci = v.begin(); ci !=
v.end(); ++ci){
printf("%d ", *ci);
}
printf("\n");
return;
}
v.push_back(in[0]);
PrintAllSubsets(in + 1, len - 1);
v.pop_back();
PrintAllSubsets(in + 1, len - 1);
}
//Round 2:
//A. Remove duplicated integers in an array, and then return an array
without
//duplicates. Follow up: what if allow duplicates at most twice?
//i.e., [1, 1, 1, 2, 2, 3, 2] --> [1, 1, 2, 2, 3]
// return new length.
int RemoveDuplicatedRemainAtMostTwice(int in[], int len){
if (!in || len < 2)
return len;
std::sort(in, in + len);
int i = 0;
int j = 1;
bool has_two = false;
int length = len;
while (j < len){
if (in[i] == in[j]){
if (has_two){
++j;
--length;
}else{
in[++i] = in[j++];
has_two = true;
}
}else{
has_two = false;
in[++i] = in[j++];
}
}
return length;
}
//B. Given a string and a dictionary that maps a character to several
//characters, print all combination and tell the complexity.
//i.e., string = "face", f=> f, @, 4, h a=> a, c, e
//print: face, @ace, 4ace, .....
void PrintAllCombination(char *str, std::map< char, std::vector > &m){
static std::vector v;
if (!*str){
for (std::vector::const_iterator ci = v.begin(); ci !=
v.end(); ++ci){
printf("%c", *ci);
}
printf("\n");
return;
}
if (m.find(*str) == m.end()){
v.push_back(*str);
PrintAllCombination(str + 1, m);
v.pop_back();
}else{
for (std::vector::iterator ci = m[*str].begin(); ci !=
m[*str].end(); ++ci){
v.push_back(*ci);
PrintAllCombination(str + 1, m);
v.pop_back();
}
}
}
avatar
i*w
39
不够用就加integer

【在 d****j 的大作中提到】
: 第一轮第二题
: 电面之前刚好练过这道题,但是用ArrayList 和ArrayList of ArrayList 实现的,用
: recrusive 的方法,返回前k个元素的幂集合之后,再复制一边添加当前k+1元素入每个
: 子集合。最终返回幂集之后在打印,效率不好。但是当时想都没想就写上去了。
: 面完了就想起,完全可以用一个等长的int数组来标识是否取当前元素,代码如下。(
: Careercup有这道题,使用一个int数i的每一位来做标识,把i从0递增到2^32-1就能打
: 印出所有的subsets,但最多只能实现到32个数的数组)
: public static void printPowerSet(int[] set) {
: int[] index = new int[set.length];
: int endidx = 0;

avatar
h*3
40
How do you get the opportunity? Are you from tier one school (if you dont
mind)?

level

【在 d****j 的大作中提到】
: 面试官没提到题目不可以外泄,而且也都是常见的, 所以就在这里发了。
: 两轮电话面试都是45分钟,2道编程题,白板共享文档写程序。
: 简单寒暄5-10分钟,谈谈research,最近做的project等等。
: 然后直接告知共享文档link,写程序。
: Round 1:
: A. Given an arbitrary tree, can you print it level by level (with each level
: printed on the same line).Define your own tree node structure, can be
: binary tree or n-ary tree.
: B. Given a set of distinct integers, can you print out all subsets?
: Round 2:

avatar
r*g
41
没有想象中难,我还以为facebook的面试题和那些puzzle一样呢。
avatar
r*g
42
没有想象中难,我还以为facebook的面试题和那些puzzle一样呢。
avatar
y*g
43
汗颜,我觉得这些要电面写出干净code还是有点难度的

【在 r*******g 的大作中提到】
: 没有想象中难,我还以为facebook的面试题和那些puzzle一样呢。
avatar
t*n
44
太牛了。第一题要pop 吧。

【在 s*******f 的大作中提到】
: //A. Given an arbitrary tree, can you print it level by level (with each
: level
: //printed on the same line).Define your own tree node structure, can be
: //binary tree or n-ary tree.
: struct Node{
: int d;
: std::vector children;
: };
: void PrintByLevel(Node *r){
: if (!r)

avatar
s*f
45
这都被你看得出来!那queue都快被我塞爆了。

【在 t*****n 的大作中提到】
: 太牛了。第一题要pop 吧。
avatar
s*n
46
第二轮第一题hash怎么写?用c或者c++ coding时候没有hash啊,难道用map?

level

【在 d****j 的大作中提到】
: 面试官没提到题目不可以外泄,而且也都是常见的, 所以就在这里发了。
: 两轮电话面试都是45分钟,2道编程题,白板共享文档写程序。
: 简单寒暄5-10分钟,谈谈research,最近做的project等等。
: 然后直接告知共享文档link,写程序。
: Round 1:
: A. Given an arbitrary tree, can you print it level by level (with each level
: printed on the same line).Define your own tree node structure, can be
: binary tree or n-ary tree.
: B. Given a set of distinct integers, can you print out all subsets?
: Round 2:

avatar
s*n
47
round 1/A:
void printTree (node * root){
if (!root) return;
node* pointer;
stack*> astack;
astack.push(root);
while (!astack.empty()){
pointer=astack.top();
if (!pointer) continue;
print(pointer);
astack.pop();
astack.push(point->left());
astack.push(point->right());
}
}

level

【在 d****j 的大作中提到】
: 面试官没提到题目不可以外泄,而且也都是常见的, 所以就在这里发了。
: 两轮电话面试都是45分钟,2道编程题,白板共享文档写程序。
: 简单寒暄5-10分钟,谈谈research,最近做的project等等。
: 然后直接告知共享文档link,写程序。
: Round 1:
: A. Given an arbitrary tree, can you print it level by level (with each level
: printed on the same line).Define your own tree node structure, can be
: binary tree or n-ary tree.
: B. Given a set of distinct integers, can you print out all subsets?
: Round 2:

avatar
s*n
48
void printAllSubSet(int set[], int size){
if (size<=0) return;
int reviewed = new int [size];
int lreviewed = 0;
printAllSub (reviewed, lreviewed, set, size);
}
void printAllSub (int reviewed[], int lreviewed, int set[], int size){
if (lreviewed==size){
for (int i=0;iif (reviewed[i]) print(set[i]);
}
}
lreviewed += 1;
printAllSub (reviewd, lreviewed, set, size);
reviewed[lreviewed-1] = 1;
printAllSub (reviewd, lreviewed, set, size);
}

level

【在 d****j 的大作中提到】
: 面试官没提到题目不可以外泄,而且也都是常见的, 所以就在这里发了。
: 两轮电话面试都是45分钟,2道编程题,白板共享文档写程序。
: 简单寒暄5-10分钟,谈谈research,最近做的project等等。
: 然后直接告知共享文档link,写程序。
: Round 1:
: A. Given an arbitrary tree, can you print it level by level (with each level
: printed on the same line).Define your own tree node structure, can be
: binary tree or n-ary tree.
: B. Given a set of distinct integers, can you print out all subsets?
: Round 2:

avatar
s*n
49
round 2/A
int removeDupMoreThanTwo (int set[], int size){
std::map amap;
int write=0,;
for (int i=0; iif (amap.find(set[i])==amap.end()) {amap.insert(pair(set[i],1))
; set[write]=set[i]; write++}
else if (amap[set[i]]->second()<=2) {amap[set[i]]++;set[write]=set[i];
write++}
else amap[set[i]]++;
}
return write+1;
}

level

【在 d****j 的大作中提到】
: 面试官没提到题目不可以外泄,而且也都是常见的, 所以就在这里发了。
: 两轮电话面试都是45分钟,2道编程题,白板共享文档写程序。
: 简单寒暄5-10分钟,谈谈research,最近做的project等等。
: 然后直接告知共享文档link,写程序。
: Round 1:
: A. Given an arbitrary tree, can you print it level by level (with each level
: printed on the same line).Define your own tree node structure, can be
: binary tree or n-ary tree.
: B. Given a set of distinct integers, can you print out all subsets?
: Round 2:

avatar
s*n
50
round 2/B, same with round 1/B, except use a for loop to change the current
bit

level

【在 d****j 的大作中提到】
: 面试官没提到题目不可以外泄,而且也都是常见的, 所以就在这里发了。
: 两轮电话面试都是45分钟,2道编程题,白板共享文档写程序。
: 简单寒暄5-10分钟,谈谈research,最近做的project等等。
: 然后直接告知共享文档link,写程序。
: Round 1:
: A. Given an arbitrary tree, can you print it level by level (with each level
: printed on the same line).Define your own tree node structure, can be
: binary tree or n-ary tree.
: B. Given a set of distinct integers, can you print out all subsets?
: Round 2:

avatar
l*s
51
Facebook interviews:
http://myguiding.com/viewforum.php?f=98

level

【在 d****j 的大作中提到】
: 面试官没提到题目不可以外泄,而且也都是常见的, 所以就在这里发了。
: 两轮电话面试都是45分钟,2道编程题,白板共享文档写程序。
: 简单寒暄5-10分钟,谈谈research,最近做的project等等。
: 然后直接告知共享文档link,写程序。
: Round 1:
: A. Given an arbitrary tree, can you print it level by level (with each level
: printed on the same line).Define your own tree node structure, can be
: binary tree or n-ary tree.
: B. Given a set of distinct integers, can you print out all subsets?
: Round 2:

avatar
b*c
52
onsite之前是两轮 interview,你过了第一轮就不错了,我下周也要面fb,ms啦
avatar
r*g
53
那自然,我是以为facebook的难度都是看到题找不到入手点的,比如那些puzzle。
facebook实在太拽乐,貌似很难拿到interview机会。

【在 y*******g 的大作中提到】
: 汗颜,我觉得这些要电面写出干净code还是有点难度的
avatar
l*n
54
请问楼主是new grad PhD 吗?
avatar
r*x
55
这个round 2B的做法是啥。。。
复杂度应该是每个位置可能出现数目的累乘?
avatar
s*l
56
round 2 B 就是用backtracking把~
avatar
e*u
57
这坟挖的...
avatar
J*o
58
为什么是挖坟啊?。。。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。