l********t 发帖数: 123 | 1 签了nda,phone和onsite写一起了
1.把一个字符串转成float,字符串可能是负的一百点三还有个指数E-09这样的
2.反转单链表..
3.给一个整数,求next permutation 就是数字组成一样的 但是比这个数大的最小的一
个数
4.一个很大的文件 怎么去掉duplicate
5. circular sorted array找元素
6.分层打印tree
7.一个字符串,每个字符可以替换成好多其他字符,打印所有可能
8.很简单的一个题,就是会用vector, set, map, pair这些玩意就行了
9.应该还有一个题,不难,但是怎么都想不起来了...
效率很高,拒信很快,move on啦~~ |
g**e 发帖数: 6127 | 2 bless.
第五题是啥,没见过
【在 l********t 的大作中提到】 : 签了nda,phone和onsite写一起了 : 1.把一个字符串转成float,字符串可能是负的一百点三还有个指数E-09这样的 : 2.反转单链表.. : 3.给一个整数,求next permutation 就是数字组成一样的 但是比这个数大的最小的一 : 个数 : 4.一个很大的文件 怎么去掉duplicate : 5. circular sorted array找元素 : 6.分层打印tree : 7.一个字符串,每个字符可以替换成好多其他字符,打印所有可能 : 8.很简单的一个题,就是会用vector, set, map, pair这些玩意就行了
|
l********t 发帖数: 123 | 3 改了 少写了个sorted
【在 g**e 的大作中提到】 : bless. : 第五题是啥,没见过
|
d*******r 发帖数: 208 | 4 Thanks for sharing. seems current trend of interview prefers permutation and
combination questions. something like print all paths, enumerate all
possibilities.
【在 l********t 的大作中提到】 : 签了nda,phone和onsite写一起了 : 1.把一个字符串转成float,字符串可能是负的一百点三还有个指数E-09这样的 : 2.反转单链表.. : 3.给一个整数,求next permutation 就是数字组成一样的 但是比这个数大的最小的一 : 个数 : 4.一个很大的文件 怎么去掉duplicate : 5. circular sorted array找元素 : 6.分层打印tree : 7.一个字符串,每个字符可以替换成好多其他字符,打印所有可能 : 8.很简单的一个题,就是会用vector, set, map, pair这些玩意就行了
|
M**u 发帖数: 10158 | 5 bless阿!
【在 l********t 的大作中提到】 : 签了nda,phone和onsite写一起了 : 1.把一个字符串转成float,字符串可能是负的一百点三还有个指数E-09这样的 : 2.反转单链表.. : 3.给一个整数,求next permutation 就是数字组成一样的 但是比这个数大的最小的一 : 个数 : 4.一个很大的文件 怎么去掉duplicate : 5. circular sorted array找元素 : 6.分层打印tree : 7.一个字符串,每个字符可以替换成好多其他字符,打印所有可能 : 8.很简单的一个题,就是会用vector, set, map, pair这些玩意就行了
|
M**u 发帖数: 10158 | 6 我感觉Facebook的题目就是,看着不难
但是往往找不到最好的solution...
【在 l********t 的大作中提到】 : 签了nda,phone和onsite写一起了 : 1.把一个字符串转成float,字符串可能是负的一百点三还有个指数E-09这样的 : 2.反转单链表.. : 3.给一个整数,求next permutation 就是数字组成一样的 但是比这个数大的最小的一 : 个数 : 4.一个很大的文件 怎么去掉duplicate : 5. circular sorted array找元素 : 6.分层打印tree : 7.一个字符串,每个字符可以替换成好多其他字符,打印所有可能 : 8.很简单的一个题,就是会用vector, set, map, pair这些玩意就行了
|
i******e 发帖数: 273 | 7 Bless, move on.
Good luck! |
z*******y 发帖数: 578 | |
G********g 发帖数: 745 | 9 FB面试近来有越来越简单的趋势啊,是不是要扩招啊? |
G********g 发帖数: 745 | 10 FB面试近来有越来越简单的趋势啊,是不是要扩招啊? |
|
|
L******g 发帖数: 1371 | 11 nothing new than career cup. |
g*****i 发帖数: 2162 | 12 第四题是remove duplicate line吗?
【在 l********t 的大作中提到】 : 签了nda,phone和onsite写一起了 : 1.把一个字符串转成float,字符串可能是负的一百点三还有个指数E-09这样的 : 2.反转单链表.. : 3.给一个整数,求next permutation 就是数字组成一样的 但是比这个数大的最小的一 : 个数 : 4.一个很大的文件 怎么去掉duplicate : 5. circular sorted array找元素 : 6.分层打印tree : 7.一个字符串,每个字符可以替换成好多其他字符,打印所有可能 : 8.很简单的一个题,就是会用vector, set, map, pair这些玩意就行了
|
P**********c 发帖数: 3417 | 13 第3题怎么做?
【在 l********t 的大作中提到】 : 签了nda,phone和onsite写一起了 : 1.把一个字符串转成float,字符串可能是负的一百点三还有个指数E-09这样的 : 2.反转单链表.. : 3.给一个整数,求next permutation 就是数字组成一样的 但是比这个数大的最小的一 : 个数 : 4.一个很大的文件 怎么去掉duplicate : 5. circular sorted array找元素 : 6.分层打印tree : 7.一个字符串,每个字符可以替换成好多其他字符,打印所有可能 : 8.很简单的一个题,就是会用vector, set, map, pair这些玩意就行了
|
P**********c 发帖数: 3417 | 14 第6题,有什么简单的办法让打出来的是分层的?就是换行加在哪里。如果用queue的话
,如果不在node里加一个level field, 感觉不好分层. 是不是要用另外一个array来记
录每个节点的层数呢。
【在 l********t 的大作中提到】 : 签了nda,phone和onsite写一起了 : 1.把一个字符串转成float,字符串可能是负的一百点三还有个指数E-09这样的 : 2.反转单链表.. : 3.给一个整数,求next permutation 就是数字组成一样的 但是比这个数大的最小的一 : 个数 : 4.一个很大的文件 怎么去掉duplicate : 5. circular sorted array找元素 : 6.分层打印tree : 7.一个字符串,每个字符可以替换成好多其他字符,打印所有可能 : 8.很简单的一个题,就是会用vector, set, map, pair这些玩意就行了
|
i**********e 发帖数: 1145 | 15 不必。
有两种解法:
1)用两个 queue -- q1 & q2,把下层的元素 push 进 q2,当 q1 为空时你就知道这
行打印完毕。这时候替换 q1 & q2。替换 q1 & q2 的时候会把 q2 的元素一个一个
copy 进 q1,如果 queue 很大的话 效率可能不是很好。解决方法:可以只交换 q1 &
q2 的指针。
2)一个 queue,但用两个 extra variable: nodesInCurrentLevel &
nodesInNextLevel.初始化 nodesInCurrentLevel 为 1(因为你一开始是 push root
节点进 queue 里了)。当 push 下层的时候就增加 nodesInNextLevel,然后
decrement nodesInCurrentLevel by 1。当 nodesInCurrentLevel 为 0 时 也就是该
换行的时候了。
【在 P**********c 的大作中提到】 : 第6题,有什么简单的办法让打出来的是分层的?就是换行加在哪里。如果用queue的话 : ,如果不在node里加一个level field, 感觉不好分层. 是不是要用另外一个array来记 : 录每个节点的层数呢。
|
P**********c 发帖数: 3417 | 16 嗯。第二个方法似乎不错。
&
【在 i**********e 的大作中提到】 : 不必。 : 有两种解法: : 1)用两个 queue -- q1 & q2,把下层的元素 push 进 q2,当 q1 为空时你就知道这 : 行打印完毕。这时候替换 q1 & q2。替换 q1 & q2 的时候会把 q2 的元素一个一个 : copy 进 q1,如果 queue 很大的话 效率可能不是很好。解决方法:可以只交换 q1 & : q2 的指针。 : 2)一个 queue,但用两个 extra variable: nodesInCurrentLevel & : nodesInNextLevel.初始化 nodesInCurrentLevel 为 1(因为你一开始是 push root : 节点进 queue 里了)。当 push 下层的时候就增加 nodesInNextLevel,然后 : decrement nodesInCurrentLevel by 1。当 nodesInCurrentLevel 为 0 时 也就是该
|
a**********2 发帖数: 340 | 17 用NULL作为分行符行吗?
每次front == NULL的时候表示当前层结束,所有的children都已经在queue里面了,这
个时候再压入下一层的分隔符NULL
&
【在 i**********e 的大作中提到】 : 不必。 : 有两种解法: : 1)用两个 queue -- q1 & q2,把下层的元素 push 进 q2,当 q1 为空时你就知道这 : 行打印完毕。这时候替换 q1 & q2。替换 q1 & q2 的时候会把 q2 的元素一个一个 : copy 进 q1,如果 queue 很大的话 效率可能不是很好。解决方法:可以只交换 q1 & : q2 的指针。 : 2)一个 queue,但用两个 extra variable: nodesInCurrentLevel & : nodesInNextLevel.初始化 nodesInCurrentLevel 为 1(因为你一开始是 push root : 节点进 queue 里了)。当 push 下层的时候就增加 nodesInNextLevel,然后 : decrement nodesInCurrentLevel by 1。当 nodesInCurrentLevel 为 0 时 也就是该
|
j**l 发帖数: 2911 | 18 还要判断NULL是否在末尾,否则将不断压入NULL,造成死循环。
【在 a**********2 的大作中提到】 : 用NULL作为分行符行吗? : 每次front == NULL的时候表示当前层结束,所有的children都已经在queue里面了,这 : 个时候再压入下一层的分隔符NULL : : &
|
a**********2 发帖数: 340 | 19 对,只剩一个了就退
【在 j**l 的大作中提到】 : 还要判断NULL是否在末尾,否则将不断压入NULL,造成死循环。
|
c*********8 发帖数: 561 | 20 感觉楼主说这些题这么随意,应该不错啊。怎么被据了。。。 |
|
|
t*******i 发帖数: 4960 | 21 要考虑负数吗?
正数跟负数处理不一样。
【在 P**********c 的大作中提到】 : 第3题怎么做?
|
P**********c 发帖数: 3417 | 22 你都说说吧。
【在 t*******i 的大作中提到】 : 要考虑负数吗? : 正数跟负数处理不一样。
|
t*******i 发帖数: 4960 | 23 我会把数字转换成字符串处理。
如果是正数的话,
找第一个比它右边小的数字,调换过来
比如:
257634 => 257643,好像就是答案了
如果找到的第一个数字不是刚好在上面这个位置
比如
257643,找到5,然后跟右边大于5的最小的一个数字换过来-》267543,然后6以后的数
字从小到大排列 =》 263457,好像是答案了
然后在 atoi换成数字
注意如果转换以后的字符串长度是1,直接返回。
如果是负数,转成正数,不过要找的是小于转换以后的正数的最大数。
不保证对啊。 |
P**********c 发帖数: 3417 | 24 不是刚好在上面这个位置是什么意思呢。哪个位置呢?
【在 t*******i 的大作中提到】 : 我会把数字转换成字符串处理。 : 如果是正数的话, : 找第一个比它右边小的数字,调换过来 : 比如: : 257634 => 257643,好像就是答案了 : 如果找到的第一个数字不是刚好在上面这个位置 : 比如 : 257643,找到5,然后跟右边大于5的最小的一个数字换过来-》267543,然后6以后的数 : 字从小到大排列 =》 263457,好像是答案了 : 然后在 atoi换成数字
|
t*******i 发帖数: 4960 | 25 打的一个草稿,不处理负数
int NextP(int num){
if (num < 0)
throw -1;
char str[11];
itoa(num, str, 10);
if (strlen(str) == 1)
throw -1;
pos = len-1;
while (pos >= 1){
if (str[pos] > str[pos - 1])
break;
pos --;
}
if (pos == 0)
throw -1;
--pos;
int min = findLargerMin(str, pos + 1, len – 1, str[pos]);
swap(str, pos, min);
sort(str, pos + 1, len - 1);
return atoi(str);
} |
i**********e 发帖数: 1145 | |
c****l 发帖数: 1280 | |