一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 2008|回复: 17
收起左侧

Linkedin phone interview

[复制链接] |试试Instant~ |关注本帖
mututu 发表于 2016-10-8 13:26:12 | 显示全部楼层 |阅读模式

2016(7-9月) 码农类 硕士 全职@Linkedin - 内推 - 技术电面 |Fail在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
题目是Shortest Word Distance. visit 1point3acres.com for more.

followup: two word distance 改成three word distance, 目的是让三个word相互之间的distance和最小
. 鍥磋鎴戜滑@1point 3 acres
最优解当场没想出来,当场想到的是two pointer往里收缩。每次移动left/right pointer中一个,直到停在三个target word中的一个。每挪动其中一个ponter,检查第三个word存不存在two pointer之间。时间复杂度的话,不用额外的memory,应该是O(n^2)吧

最优解应该只需要从左往右走一边就行。

评分

2

查看全部评分

XavierWangXY 发表于 2016-10-8 13:35:44 | 显示全部楼层
从左往右 分别记录三个word最后出现的index 然后 distance和 取最大值?
回复 支持 反对

使用道具 举报

 楼主| mututu 发表于 2016-10-8 13:38:14 | 显示全部楼层
嗯,应该是的
回复 支持 反对

使用道具 举报

say543 发表于 2016-10-8 14:26:21 | 显示全部楼层

. visit 1point3acres.com for more.
如果w1 w2 w3 都重复 要输出为0吗? 最近也要面linkedlin 怕没坑了 thanks 指教....
回复 支持 反对

使用道具 举报

bbsbbstry 发表于 2016-10-8 23:21:28 | 显示全部楼层
请问楼主怎么拿到的面试啊
回复 支持 反对

使用道具 举报

 楼主| mututu 发表于 2016-10-9 05:55:17 | 显示全部楼层
say543 发表于 2016-10-8 14:26
如果w1 w2 w3 都重复 要输出为0吗? 最近也要面linkedlin 怕没坑了 thanks 指教....

当时有想到duplicate的问题,跟面试官讨论,说先不考虑duplicate,写完再加。后来写完代码时间差不多, 就没考虑duplicate
回复 支持 反对

使用道具 举报

 楼主| mututu 发表于 2016-10-9 05:55:31 | 显示全部楼层
bbsbbstry 发表于 2016-10-8 23:21
请问楼主怎么拿到的面试啊

找同学的同学refer的
回复 支持 反对

使用道具 举报

bananapancake 发表于 2016-10-9 10:35:57 | 显示全部楼层
不懂,这个三个词的做法和两个词的做法能有不同吗?应该是一样的啊
回复 支持 反对

使用道具 举报

say543 发表于 2016-10-9 13:51:10 | 显示全部楼层
mututu 发表于 2016-10-9 05:55
当时有想到duplicate的问题,跟面试官讨论,说先不考虑duplicate,写完再加。后来写完代码时间差不多,  ...


谢楼主 如果没有duplicate 扫依次 因该能说 , 有duplicate就相对麻烦了
  有可能w1 =w2 or w2 =w3 就看题目怎分析了
回复 支持 反对

使用道具 举报

virpro 发表于 2016-10-13 06:15:15 | 显示全部楼层
bananapancake 发表于 2016-10-9 10:35
不懂,这个三个词的做法和两个词的做法能有不同吗?应该是一样的啊
. more info on 1point3acres.com
对啊,就是update index的时候麻烦一点,方法是一样的吧。
回复 支持 反对

使用道具 举报

say543 发表于 2016-10-13 14:36:04 | 显示全部楼层
virpro 发表于 2016-10-13 06:15
对啊,就是update index的时候麻烦一点,方法是一样的吧。

能上个考虑w1=w2 or w1=w2=w3 的代码吗? thanls 思路有点乱...
回复 支持 反对

使用道具 举报

say543 发表于 2016-10-14 02:44:12 | 显示全部楼层
  1.   public int shortestDistance(String[] words, String word1, String word2, String word3) {

  2.         //preid is needed to duplicate case
  3.         int w1_preid = -1;
  4.         int w2_preid = -1;
  5.         int w3_preid = -1;
  6.       
  7.         //curid
  8.         int w1_id = -1;
  9.         int w2_id = -1;
  10.         int w3_id = -1;
  11.       
  12.       
  13.         int min = Integer.MAX_VALUE;
  14.         for (int i = 0 ; i < words.length ; i++){. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  15.          
  16.           //update possilbe length
  17.           //only two the same [w1, w2] , [w2, w3], [w1, w3] . visit 1point3acres.com for more.
  18.           if (word1.equals(word2) && !word1.equals(word3) &&  words[i].equals(word3)){. Waral 鍗氬鏈夋洿澶氭枃绔,

  19.             if (w1_preid != -1 && w1_id!= -1)
  20.               min = Math.min(i- w1_preid,  min);

  21.           }
  22.           else if (word1.equals(word3)  &&  !word1.equals(word2) && words[i].equals(word2)){

  23.             if (w1_preid != -1 && w1_id!= -1)
  24.               min = Math.min(i- w1_preid,  min);

  25.           }
  26.           else if (word2.equals(word3)  &&  !word2.equals(word1) && words[i].equals(word1)){. from: 1point3acres.com/bbs
  27.             if (w2_preid != -1 && w2_id!= -1)
  28.               min = Math.min(i- w2_preid,  min);. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  29.           }
  30.           // all the same
  31.           // order does not matter but three different are necessary
  32.           else if (word1.equals(word2)  &&  word2.equals(word3) && words[i].equals(word1)){.鏈枃鍘熷垱鑷1point3acres璁哄潧
  33.             if (w1_preid != -1 && w1_id!= -1)
  34.               min = Math.min(i- w1_preid,  min);
  35.           }. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  36.           // all different
  37.           else if (words[i].equals(word1)){
  38.             if (w2_id != -1 && w3_id!= -1)
  39.               min = Math.min(i- Math.min(w2_id, w3_id), min);
  40.           }
  41.           else if (words[i].equals(word2)){
  42.             if (w1_id != -1 && w3_id!= -1)
  43.               min = Math.min(i- Math.min(w1_id, w3_id), min);
  44.           }
  45.           else if (words[i].equals(word3)){
  46.             if (w1_id != -1 && w2_id!= -1)
  47.               min = Math.min(i- Math.min(w1_id, w2_id), min);
  48.           }
  49.          
  50.          
  51.           //update cur index to id /preid
  52.           if (words[i].equals(word1)){. visit 1point3acres.com for more.
  53.             w1_preid = w1_id;. 鍥磋鎴戜滑@1point 3 acres
  54.             w1_id = i;
  55.           }
  56.           if (words[i].equals(word2)){. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  57.             w2_preid = w2_id;
  58.             w2_id = i;
  59.           }
  60.           if (words[i].equals(word3)){ 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  61.             w3_preid = w3_id;
  62.             w3_id = i;
  63.           }

  64.         }
  65.         return min;
  66.     }
复制代码


写了个代码considering duplication 有点complicate 有错烦指正
回复 支持 反对

使用道具 举报

1451427216 发表于 2016-11-1 08:01:38 | 显示全部楼层
求问楼主进到下一轮了吗
回复 支持 反对

使用道具 举报

小A要当码农 发表于 2016-11-8 08:14:25 | 显示全部楼层
额,  不是每次都让最小的那个index向右移动不就好了?
回复 支持 反对

使用道具 举报

say543 发表于 2016-11-8 13:53:15 | 显示全部楼层
小A要当码农 发表于 2016-11-8 08:14
额,  不是每次都让最小的那个index向右移动不就好了?


能上个代码吗? follow up 有更好的想法?
回复 支持 反对

使用道具 举报

小A要当码农 发表于 2016-11-9 00:58:14 | 显示全部楼层
say543 发表于 2016-11-8 13:53
能上个代码吗? follow up 有更好的想法?

我写一下,写好了贴上来。。
回复 支持 反对

使用道具 举报

susand33 发表于 2016-11-9 01:17:15 | 显示全部楼层
LZ是面New Grad么?
回复 支持 反对

使用道具 举报

say543 发表于 2016-11-9 16:36:48 | 显示全部楼层
小A要当码农 发表于 2016-11-9 00:58
我写一下,写好了贴上来。。


thanks 觉得我的code 有点complicate 但是我没有好的做法..
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-8 06:54

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表