12
返回列表 发新帖
楼主: mututu
跳转到指定楼层
上一主题 下一主题
收起左侧

Linkedin phone interview

🔗
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]
  18.           if (word1.equals(word2) && !word1.equals(word3) &&  words[i].equals(word3)){

  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)){
  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)){
  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)){
  53.             w1_preid = w1_id;
  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 | 只看该作者
全局:
求问楼主进到下一轮了吗
回复

使用道具 举报

全局:
额,  不是每次都让最小的那个index向右移动不就好了?
回复

使用道具 举报

🔗
say543 2016-11-8 13:53:15 | 只看该作者
全局:
小A要当码农 发表于 2016-11-8 08:14
额,  不是每次都让最小的那个index向右移动不就好了?


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

使用道具 举报

全局:
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 但是我没有好的做法..
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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