avatar
一个认床引起的悲剧# Joke - 肚皮舞运动
k*a
1
今天下午电面了linkedin,一共一个小时。
最开始两个面试官自我介绍,然后是听我的自我介绍。
接着还问了我做过的最感兴趣的一个项目。
然后就是开始做题,两个题目。
第一个是两个单词最短距离,在版上看到很多人都说过这个题目,应该是L家经常面的。
本来以为只要实现一个函数,哪里知道是实现两个函数,第一个是做求最短距离的准备
工作,实现类的初始化;第二个才是真正的求最短距离的函数。
写第二个函数的时候,还忘记判断单词是否在字典中出现过,幸好面试官有提醒。
第二题就是leetcode上的全排列,没有重复元素的。
我是用递归做的,他们还问了思路和详细过程,还问了时间复杂度。
最后就是让我问问题。
祝我好运吧!!!
avatar
a*e
2
大家都知道认床是什么意思。
一个哥们A认床。
A的老婆一个闺密因为老公闹离婚,大晚上去闺密家安慰。
A只好顶着睡意跟着去。
然后。。。
A的老婆开始和A闹离婚。。。
avatar
r*e
3
听你这描述,应该能过了。
avatar
k*r
4
不放狗还真不知道啥叫认床。
avatar
k*a
5
可我不知道面试官是否喜欢我全排列的写法,更不知道第一题写得对不对
avatar
f*n
6
难道就因为A没有认床?

【在 a**e 的大作中提到】
: 大家都知道认床是什么意思。
: 一个哥们A认床。
: A的老婆一个闺密因为老公闹离婚,大晚上去闺密家安慰。
: A只好顶着睡意跟着去。
: 然后。。。
: A的老婆开始和A闹离婚。。。

avatar
r*e
7
第一题你咋写的?他们会有评价的,有bug会让你改。
第二题他们有啥评价?

【在 k*******a 的大作中提到】
: 可我不知道面试官是否喜欢我全排列的写法,更不知道第一题写得对不对
avatar
D*s
8
那哥们A认床,所以新床是睡不着的。顶着睡意到了老婆闺蜜家,估计在A老婆安慰闺蜜
的时候A在闺蜜家床上睡着了。所以A以前在闺蜜家的床睡过,所以A和他老婆闺蜜很可
能有一腿。

【在 f***n 的大作中提到】
: 难道就因为A没有认床?
avatar
l*a
9
那就贴一下你写的,让大家给你review

【在 k*******a 的大作中提到】
: 可我不知道面试官是否喜欢我全排列的写法,更不知道第一题写得对不对
avatar
b*s
10
没必要讲得那么明白

【在 D***s 的大作中提到】
: 那哥们A认床,所以新床是睡不着的。顶着睡意到了老婆闺蜜家,估计在A老婆安慰闺蜜
: 的时候A在闺蜜家床上睡着了。所以A以前在闺蜜家的床睡过,所以A和他老婆闺蜜很可
: 能有一腿。

avatar
k*a
11
第一题就是把两个单词的序号分别放到两个顺序容器里,然后分别从两个顺序容器取一
个值,计算差的绝对值最小的。
两道题他们都没啥评价,就是第一题让给我改了bug。
我觉得可能过不了面试,因为第二道题我的时间复杂度说错了。
按照我的代码的写法,时间复杂度应该是n^n,可我说了n!
其实我的递归算法写得不好,时间复杂度就是n^n,可是我却告诉他是n的阶乘
估计挂了
面试完之后我才知道时间复杂度说错了
avatar
z*e
12
操,“择(读“宅”音)席”这么纯粹的中华文化精髓,愣让你们这帮没文化的给土化
成“认床”这么粗野的词汇了!
本来连不识字的农村人都说“择席”!

【在 D***s 的大作中提到】
: 那哥们A认床,所以新床是睡不着的。顶着睡意到了老婆闺蜜家,估计在A老婆安慰闺蜜
: 的时候A在闺蜜家床上睡着了。所以A以前在闺蜜家的床睡过,所以A和他老婆闺蜜很可
: 能有一腿。

avatar
k*a
13
窗口关了,不记得了
贴上来让大家多点经验罢了

【在 l*****a 的大作中提到】
: 那就贴一下你写的,让大家给你review
avatar
H*g
14
果然高大上多了

【在 z**********e 的大作中提到】
: 操,“择(读“宅”音)席”这么纯粹的中华文化精髓,愣让你们这帮没文化的给土化
: 成“认床”这么粗野的词汇了!
: 本来连不识字的农村人都说“择席”!

avatar
g*t
15
感谢分享
avatar
t*g
16
扯,农村都叫挑炕。

【在 z**********e 的大作中提到】
: 操,“择(读“宅”音)席”这么纯粹的中华文化精髓,愣让你们这帮没文化的给土化
: 成“认床”这么粗野的词汇了!
: 本来连不识字的农村人都说“择席”!

avatar
r*e
17
哦,应该没事,全排列不是那么好写的。
你直接在浏览器中输 http://collabedit.com/
可能会有自动完成把你的网址拿出来。

【在 k*******a 的大作中提到】
: 第一题就是把两个单词的序号分别放到两个顺序容器里,然后分别从两个顺序容器取一
: 个值,计算差的绝对值最小的。
: 两道题他们都没啥评价,就是第一题让给我改了bug。
: 我觉得可能过不了面试,因为第二道题我的时间复杂度说错了。
: 按照我的代码的写法,时间复杂度应该是n^n,可我说了n!
: 其实我的递归算法写得不好,时间复杂度就是n^n,可是我却告诉他是n的阶乘
: 估计挂了
: 面试完之后我才知道时间复杂度说错了

avatar
z*e
18
南方哪儿来的“炕”??

【在 t*****g 的大作中提到】
: 扯,农村都叫挑炕。
avatar
a*u
19
虽然没看到你的代码,但我觉得你的写法应该还是n!的。
感觉lz是妥妥的过了。

【在 k*******a 的大作中提到】
: 第一题就是把两个单词的序号分别放到两个顺序容器里,然后分别从两个顺序容器取一
: 个值,计算差的绝对值最小的。
: 两道题他们都没啥评价,就是第一题让给我改了bug。
: 我觉得可能过不了面试,因为第二道题我的时间复杂度说错了。
: 按照我的代码的写法,时间复杂度应该是n^n,可我说了n!
: 其实我的递归算法写得不好,时间复杂度就是n^n,可是我却告诉他是n的阶乘
: 估计挂了
: 面试完之后我才知道时间复杂度说错了

avatar
c*r
20
lol
avatar
k*a
21
不是的,我写得不好,真的是n^n的复杂度。
不过,我现在已经知道如何写n!的代码了,下次碰到类似的题目就可以做得更好了。

【在 a******u 的大作中提到】
: 虽然没看到你的代码,但我觉得你的写法应该还是n!的。
: 感觉lz是妥妥的过了。

avatar
m*d
22
老婆去闺蜜家,老公A可以继续在家里睡觉啊!

【在 D***s 的大作中提到】
: 那哥们A认床,所以新床是睡不着的。顶着睡意到了老婆闺蜜家,估计在A老婆安慰闺蜜
: 的时候A在闺蜜家床上睡着了。所以A以前在闺蜜家的床睡过,所以A和他老婆闺蜜很可
: 能有一腿。

avatar
a*e
23
第二题像这种写法的时间复杂度是多少?
void dfs(vi v, vector path, vvi &res){
if (path.size() == v.size() ){
res.push_back(path);
return;
}
for ( int i=0; i< v.size(); i++){

if (find(path.begin(), path.end(), v[i]) != path.end() ) continue;

path.push_back(v[i] );
dfs(v, path, res);
path.pop_back();
}
}
vvi permu(vi v){
vi path;

vvi res;
dfs(v, path, res);
return res;
}
avatar
h*w
24
有道理,编的不合理

闺蜜
很可

【在 m**d 的大作中提到】
: 老婆去闺蜜家,老公A可以继续在家里睡觉啊!
avatar
y*g
25
这两个一回事吧。

【在 k*******a 的大作中提到】
: 不是的,我写得不好,真的是n^n的复杂度。
: 不过,我现在已经知道如何写n!的代码了,下次碰到类似的题目就可以做得更好了。

avatar
m*d
26
不如说认人,只能在老婆身边睡着。

【在 h*w 的大作中提到】
: 有道理,编的不合理
:
: 闺蜜
: 很可

avatar
l*u
27
bless

的。

【在 k*******a 的大作中提到】
: 今天下午电面了linkedin,一共一个小时。
: 最开始两个面试官自我介绍,然后是听我的自我介绍。
: 接着还问了我做过的最感兴趣的一个项目。
: 然后就是开始做题,两个题目。
: 第一个是两个单词最短距离,在版上看到很多人都说过这个题目,应该是L家经常面的。
: 本来以为只要实现一个函数,哪里知道是实现两个函数,第一个是做求最短距离的准备
: 工作,实现类的初始化;第二个才是真正的求最短距离的函数。
: 写第二个函数的时候,还忘记判断单词是否在字典中出现过,幸好面试官有提醒。
: 第二题就是leetcode上的全排列,没有重复元素的。
: 我是用递归做的,他们还问了思路和详细过程,还问了时间复杂度。

avatar
l*y
28
A只好顶着睡意跟着去。
A干嘛去?
avatar
g*r
29
这不就是n阶乘嘛

【在 a********e 的大作中提到】
: 第二题像这种写法的时间复杂度是多少?
: void dfs(vi v, vector path, vvi &res){
: if (path.size() == v.size() ){
: res.push_back(path);
: return;
: }
: for ( int i=0; i< v.size(); i++){
:
: if (find(path.begin(), path.end(), v[i]) != path.end() ) continue;
:

avatar
b*n
30
老婆安慰闺蜜的时候,老公会跑闺蜜床上睡觉?
能不能编的靠谱一点?

【在 D***s 的大作中提到】
: 那哥们A认床,所以新床是睡不着的。顶着睡意到了老婆闺蜜家,估计在A老婆安慰闺蜜
: 的时候A在闺蜜家床上睡着了。所以A以前在闺蜜家的床睡过,所以A和他老婆闺蜜很可
: 能有一腿。

avatar
k*a
32
我觉得这个和我当时写的类似,应该是n^n

【在 a********e 的大作中提到】
: 第二题像这种写法的时间复杂度是多少?
: void dfs(vi v, vector path, vvi &res){
: if (path.size() == v.size() ){
: res.push_back(path);
: return;
: }
: for ( int i=0; i< v.size(); i++){
:
: if (find(path.begin(), path.end(), v[i]) != path.end() ) continue;
:

avatar
g*r
34
看怎么算了,如果是算for loop数量,那就是pow(n, n). 如果是算for loop里面
number of dfs call,那就是n!

【在 k*******a 的大作中提到】
: 我觉得这个和我当时写的类似,应该是n^n
avatar
r*e
35
楼主有消息了么
avatar
k*a
36
没有,你知道linkedin电面一般多久给消息吗?

【在 r*******e 的大作中提到】
: 楼主有消息了么
avatar
r*e
37
不好意思没看发帖时间。
我怀疑是recruiter dependent,我那个贼慢,一面过了6天,二面过了9天。

【在 k*******a 的大作中提到】
: 没有,你知道linkedin电面一般多久给消息吗?
avatar
j*3
38
第一题难道不是dp?
avatar
f*t
39
// Given a nested list of integers, returns the sum of all integers in the
list
// weighted by their depth. For example, given the list {{1,1},2,{1,1}} the
// function should return 10 (four 1's at depth 2, one *2 at depth 1). Given
// the list {1,{4,{6}}} the function should return 27 (one 1 at depth 1, one
4
// at depth 2, and *one 6 at depth 3)
int getNum(string::iterator &i, string::iterator end) {
if (i == end) {
return 0;
}
bool neg = false;
if (*i == '-') {
neg = true;
++i;
}
int res = 0;
while (i != end && isdigit(*i)) {
res = res * 10 + (*i - '0');
++i;
}
return neg ? -res : res;
}
int NestSum(string s) {
int multi = 0;
int res = 0;
for (auto i = s.begin(); i != s.end();) {
if (isdigit(*i) || *i == '-') {
res += getNum(i, s.end()) * multi;
} else {
if (*i == '{') {
++multi;
} else if (*i == '}') {
--multi;
}
++i;
}
}
return res;
}
class Nest {
struct Node {
int val;
bool isLeaf;
vector children;
Node (int n) : val(n), isLeaf(true) {}
Node () : isLeaf(false) {}
};
Node _root;
void CreateNode(string::iterator &left,
string::iterator right, Node *parent) {
while (left != right) {
if (isdigit(*left) || *left == '-') {
int num = getNum(left, right);
parent->children.push_back(Node(num));
} else {
if (*left == '{') {
++left;
Node res;
CreateNode(left, right, &res);
parent->children.push_back(res);
} else if (*left == '}') {
++left;
return;
} else {
++left;
}
}
}
}
void Print_(Node &n) {
if (n.isLeaf) {
cout << n.val << ',';
} else {
cout << '{';
for (auto child : n.children) {
Print_(child);
}
cout << "},";
}
}
int LevelSum(Node &cur, int level) {
int res = 0;
for (auto child : cur.children) {
if (child.isLeaf) {
res += child.val * level;
} else {
res += LevelSum(child, level + 1);
}
}
return res;
}
int LevelSumRevert(Node &cur, int *level) {
int tmp = 0;
int res = 0;
int maxLevel = 1;
for (auto child : cur.children) {
if (child.isLeaf) {
tmp += child.val;
} else {
int ll;
res += LevelSumRevert(child, &ll);
maxLevel = max(ll + 1, maxLevel);
}
}
*level = maxLevel;
return res + tmp * maxLevel;
}
public:
Nest(string s) {
auto left = s.begin() + 1;
auto right = s.end();
CreateNode(left, right, &_root);
}
void Print() {
Print_(_root);
cout << endl;
}
int LevelSum() {
return LevelSum(_root, 1);
}
int LevelSumRevert() {
int level;
return LevelSumRevert(_root, &level);
}
};
void NestSumTest() {
Nest nest("{{1,1},2,{1,1}}");
nest.Print(); cout << nest.LevelSum()
<< ' ' << nest.LevelSumRevert() << endl;
cout << NestSum("{3}") << ' ' << NestSum("{{1 }, 1,{1}}") << ' '
<< NestSum("{1,{4,{6}}}") << ' ' << NestSum("{{1,1},2,{1,1}}")
<< ' ' << NestSum("{-3}") << ' ' << NestSum("{{1,-1},-2,{1,1}}") <<
endl;
}
int main() {
NestSumTest();
WordsDistanceTest();
return 0;
}
avatar
y*8
40
permutation不应该是NP问题嘛 指数量级时间复杂度 貌似是n!吧
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。