avatar
发我遇到的面试题FLG# JobHunting - 待字闺中
w*y
1
我就不一一说是哪个公司的题目了:)
1. write a function to calculate the cube square root of x
2. given a set of elements, all possible subset
3. prefix search -- given a set of words, and a prefix, find the words
starting with the prefix
4. anagram bucket - anagram means different words with the same character
set, e.g., 'cat' and 'act' are anagram . Given a set of words, group them by
anagram.
=========================================
1. iterator with filter, 跟这个帖子的 2A一样
http://www.mitbbs.com/article_t/JobHunting/32079701.html
2. 一个看似复杂的题目, 给一个类似keyboard的input UI, 好比说
ABCDEFG
HIJKLMN
....
当需要输入一个word的时候,光标总是从A开始,移动到第一个字母、再移动到第二个
字母、再移动到第三个字母。。。。。
given an input word,求算对应的光标怎么move的-- 其实就是先做好一个hashmap,
知道每个字母对应的坐标位置, 通过坐标的差值就知道怎么move的了
3。一个desgin 题目,手机里一个maze里撞球的游戏---拨一下球就一直移动到撞墙
为止。
设计用什么data structure, 用什么算法找 start 到exit的路径
4. 问了一些java 问题,static什么意思啥的, static Arraylist是什么意思,然后
就是fib数列一系列刨根问底。
recursion 解法复杂度分析; dynamic programming/ constant space version
5.具体的细节有点忘记了//orz
跟dictionary of words, prefix 什么的有关系。 我记得是给一个list of words,
prefix给那些词建立index. 好比如果apple, bee, cat这三个词, 分别用a/b/c 当
key建立index就可以; 如果是apple bee cat cedar, 就需要ca ce给cat/cedar建立
index
=======================
1.2D sorted array里面search for a target value, 版上也有讨论的
2. distributed 算法找中值: N个machine, 每个machine有M 个 4byte int, 设计一
个算法找median
3. fork题目。 我不懂fork是啥,面试的费了好大力气给我讲这是什么意思orz, 怎
么利用fork得到一个pid & 从parent process里面分裂一个child process。 child
process里看到的pid跟parent process里面的pid不一样。
题目的要求是,用fork 分裂出两个child process, 这样分裂 L level就好比一个L
depth binary tree, 象print treenode一样 print出pid
4. 这个题目
http://www.mitbbs.com/article_t0/JobHunting/32091541.html
avatar
w*y
2
还有M家B的几道题, 不过据说他们没题库, 都是每个面试官自己准备题--碰到同一
个人面就几乎被问同样的题。。。。。。。。
1. print binary tree level by level; solve it w/o using a queue
2. 给file path做normalization的老题,就是考虑 ./ ../啥的, 用stack做就行了;
题面完全是那个老印自己设计的,我一开始完全不知道他要干嘛。 后来面多了有经验
了,我想遇到这种估计给vague problem的, 应该一开始就跟他反复问清楚input /
output都需要考虑哪些情况。。。
avatar
p*o
3

这个是不是有几层就要做几次DFS?有没有更好的办法?
;

【在 w***y 的大作中提到】
: 还有M家B的几道题, 不过据说他们没题库, 都是每个面试官自己准备题--碰到同一
: 个人面就几乎被问同样的题。。。。。。。。
: 1. print binary tree level by level; solve it w/o using a queue
: 2. 给file path做normalization的老题,就是考虑 ./ ../啥的, 用stack做就行了;
: 题面完全是那个老印自己设计的,我一开始完全不知道他要干嘛。 后来面多了有经验
: 了,我想遇到这种估计给vague problem的, 应该一开始就跟他反复问清楚input /
: output都需要考虑哪些情况。。。

avatar
l*a
4
use vector
双重循环

【在 p*****o 的大作中提到】
:
: 这个是不是有几层就要做几次DFS?有没有更好的办法?
: ;

avatar
p*2
5

vector跟queue有什么区别吗?

【在 l*****a 的大作中提到】
: use vector
: 双重循环

avatar
l*8
6
那不是相当于用vector模拟queue么?

【在 l*****a 的大作中提到】
: use vector
: 双重循环

avatar
w*y
7
我不知道用vector怎么做, 面我的人是想用in-place的方法, 不过需要node有parent
指针, 用parent指针做back-track

【在 p*****o 的大作中提到】
:
: 这个是不是有几层就要做几次DFS?有没有更好的办法?
: ;

avatar
p*2
8
这样时间复杂度会很高吧

我不知道用vector怎么做, 面我的人是想用in-place的方法, 不过需要node有parent
指针, 用parent指针做back-track
★ Sent from iPhone App: iReader Mitbbs Lite 7.56

【在 w***y 的大作中提到】
: 我不知道用vector怎么做, 面我的人是想用in-place的方法, 不过需要node有parent
: 指针, 用parent指针做back-track

avatar
h*n
9
3. fork题目。 我不懂fork是啥,面试的费了好大力气给我讲这是什么意思orz, 怎
么利用fork得到一个pid & 从parent process里面分裂一个child process。 child
process里看到的pid跟parent process里面的pid不一样。
题目的要求是,用fork 分裂出两个child process, 这样分裂 L level就好比一个L
depth binary tree, 象print treenode一样 print出pid
这个print tree node process id是要BFS那样的打印吗?这样同步起来还是有些难度
的。
avatar
w*y
10
应该是类似DFS, level by level print出来的吧
这个题目我最后也没搞懂怎么做orz
不过那个人给我的提示, 大概是说, 用pid判断是在parent process还是child
process, if else有不同的处理

child

【在 h*********n 的大作中提到】
: 3. fork题目。 我不懂fork是啥,面试的费了好大力气给我讲这是什么意思orz, 怎
: 么利用fork得到一个pid & 从parent process里面分裂一个child process。 child
: process里看到的pid跟parent process里面的pid不一样。
: 题目的要求是,用fork 分裂出两个child process, 这样分裂 L level就好比一个L
: depth binary tree, 象print treenode一样 print出pid
: 这个print tree node process id是要BFS那样的打印吗?这样同步起来还是有些难度
: 的。

avatar
h*e
11
多谢分享。
fork是Unix下的一个系统函数,用来生成一个新的子进程的。
子进程中它的返回值是0,父进程中它的返回值是子进程的ID。
这样程序中才能够分清谁是父谁是子。如果没有做过Unix编程
的话,第一次理解这个函数还是有些困难的。问这个问题的原因
可能是因为你申请的职位说是需要Unix系统编程经验吧。

【在 w***y 的大作中提到】
: 应该是类似DFS, level by level print出来的吧
: 这个题目我最后也没搞懂怎么做orz
: 不过那个人给我的提示, 大概是说, 用pid判断是在parent process还是child
: process, if else有不同的处理
:
: child

avatar
w*y
12
是的 那个人就是想要in-place的解法
back_track大概的logic是,
一直往上找parent, 直到回到root || 当前node==parent.left; 然后处理parent.
right

parent

【在 p*****2 的大作中提到】
: 这样时间复杂度会很高吧
:
: 我不知道用vector怎么做, 面我的人是想用in-place的方法, 不过需要node有parent
: 指针, 用parent指针做back-track
: ★ Sent from iPhone App: iReader Mitbbs Lite 7.56

avatar
t*h
13
多谢提供题目,bless
avatar
d*a
14
假设最开始的进程id是1. fork 2次,应该得到的树关系如下:
1
1 2
1 3 2 4
我打印时也应该这样分层打印吗?就是1打印3次,2打印2次。谢谢。

【在 w***y 的大作中提到】
: 应该是类似DFS, level by level print出来的吧
: 这个题目我最后也没搞懂怎么做orz
: 不过那个人给我的提示, 大概是说, 用pid判断是在parent process还是child
: process, if else有不同的处理
:
: child

avatar
s*a
15
fork都不知道。。你肯定不是cs的本科。

child

【在 h*********n 的大作中提到】
: 3. fork题目。 我不懂fork是啥,面试的费了好大力气给我讲这是什么意思orz, 怎
: 么利用fork得到一个pid & 从parent process里面分裂一个child process。 child
: process里看到的pid跟parent process里面的pid不一样。
: 题目的要求是,用fork 分裂出两个child process, 这样分裂 L level就好比一个L
: depth binary tree, 象print treenode一样 print出pid
: 这个print tree node process id是要BFS那样的打印吗?这样同步起来还是有些难度
: 的。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。