一亩三分地论坛

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

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

今天刚面的Linkedin第一轮电面, 发面经

[复制链接] |试试Instant~ |关注本帖
medivhsteve 发表于 2015-12-15 12:25:17 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类 硕士 全职@Linkedin - Other - 技术电面 |Pass在职跳槽

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

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

x
我的情况是已经工作了一年,h1b也到手了,于是准备跳槽, 题还没怎么刷突然Linkedin他们自己的Recruiter在Linkedin里面联系我和我们公司好几个engineer(我们都是好基友所以大家互相知道都无所谓), 我们就集体面试啰, 每天下班刷两小时题准备了三周, 今天的电面, 好久没面试了有点紧张.

面试官是一个Hawaiian, 十几年工作经验但是在Linkedin就一年多. 今天在Remote上班, 家里还有狗叫(我也是醉了).

一开始互相讲了下各自的role和working experience, 然后叫我讲了一个在公司最challenging的project, 就blabla...感觉工作一年多口语锻炼得还可以就没什么大碍.
然后剩45分钟开始做题.

第一题:
public interface TwoSum {
    /**
     * Stores @param input in an internal data structure.
     */
    void store(int input);

    /**
     * Returns true if there is any pair of numbers in the internal data structure which
     * have sum @param val, and false otherwise.. 1point 3acres 璁哄潧
     * For example, if the numbers 1, -2, 3, and 6 had been stored,
     * the method should return true for 4, -1, and 9, but false for 10, 5, and 0. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
     */
    boolean test(int val);
}. 1point 3acres 璁哄潧

我的回答: (因为是interface, 所以要implements所有的virtual function).
public class TwoSumTest implements TwoSum{
    private HashMap<Integer, Integer> map;
    private ArrayList<Integer> list;.鏈枃鍘熷垱鑷1point3acres璁哄潧

    public TwoSumTest(){
        map = new HashMap<Integer, Integer>();
        list = new ArrayList<Integer>();. 1point3acres.com/bbs
    }. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

    public void store(int input){-google 1point3acres
        map.put(input,1);. visit 1point3acres.com for more.
        list.add(input);
    }
. 鍥磋鎴戜滑@1point 3 acres
    public boolean test(int val){
        for (int i=0; i< list.size(); i++){ 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
        int key = list.get(i);
        if (map.containsKey(val-key))
        return true;
        }
        return false;
    }
}

/////用了HashMap没用HashSet是怕要follow up说有duplicates, 结果没有, 也算了不影响逻辑.

第二题: follow up, 如果我要实现O(1)的test怎么办?-google 1point3acres
回答: 那store就不能保证O(1)了,每次存一个新数的时候,map要存前面所有数与这个数的和. 就是把可能的2 sum结果都枚举出来丢到map里

.
public class TwoSumTest2 implements TwoSum{.鏈枃鍘熷垱鑷1point3acres璁哄潧
    private HashMap<Integer, Integer> map;
    private ArrayList<Integer> list;
    int lastIndex;. 鍥磋鎴戜滑@1point 3 acres

    public TwoSumTest2(){
        map = new HashMap<Integer, Integer>();
        list = new ArrayList<Integer>();. more info on 1point3acres.com
        lastIndex = 0;
    }

    public void store(int input){
        list.add(input);
        for(int i =1; i<= lastIndex;i++){. 1point3acres.com/bbs
        map.put(list.get(i)+input,1);
        }
        lastIndex++;
    }

    public boolean test(int val){. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
        if (map.containsKey(val)){
        return true;
        }
        return false;
    }
}. more info on 1point3acres.com

//再次声明用的HashMap没用HashSet是因为怕follow up.不过也没问,面试官说也不用改了没关系.

第三题: 老生常谈WordDistance, 我问了, assume WordOne != WordTwo, 那就再简单不过了
/* This class will be given a list of words (such as might be tokenized 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
* from a paragraph of text), and will provide a method that takes two.1point3acres缃
* words and returns the shortest distance (in words) between those two
* words in the provided text.
* Example:.鐣欏璁哄潧-涓浜-涓夊垎鍦
*   WordDistanceFinder finder = new WordDistanceFinder(Arrays.asList("the", "quick", "brown", "fox", "quick"));
*   assert(finder.distance("fox","the") == 3);
*   assert(finder.distance("quick", "fox") == 1);
*
* "quick" appears twice in the input. There are two possible distance values for "quick" and "fox":
*     (3 - 1) = 2 and (4 - 3) = 1.
* Since we have to return the shortest distance between the two words we return 1..1point3acres缃
*/. 1point 3acres 璁哄潧
public class WordDistanceFinder { 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
    public WordDistanceFinder (List<String> words) {
        // implementation here
    }
    public int distance (String wordOne, String wordTwo) {
        // implementation here
    }
}

我的回答:. visit 1point3acres.com for more.
public class WordDistanceFinder {.鏈枃鍘熷垱鑷1point3acres璁哄潧
    private String[] words2;. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴

    public WordDistanceFinder (List<String> words) {
        // implementation here
        words2 = new String[words.size()];
        for(int i = 0; i< words.size()-1; i++){
. visit 1point3acres.com for more.        words2[i] = words.get(i);
        }
    }
    public int distance (String wordOne, String wordTwo) {
        // implementation here
        int p =-1, q =-1, min = Integer.MAX_VALUE;
        for (int i =0 ;i< words2.size()-1; i++){
        if (words2[i].equals(wordOne)) p=i;
        if (words2[i].equals(wordsTwo)) q=i;
        if (p >0 && q>0 ){
            min = Math.min(Math.abs(p-q), min);
            }
        }
        return min;
    }
}

//感觉第一个constructor可以直接就private List然后把words pass 过去就行..当时就走直觉了..

之后时间差不多了就没继续出题了,问我有没有什么问题要问就blabla...

总体感觉和听几个同事说的, 感觉在职的题目简单一些似乎...完全没有超纲, 全在leetcode上和地里.. 1point3acres.com/bbs

不过他们的题的特色就是总是会写一个完整的class, input总是一个个数而不是一整个数组给你, 所以用java的同学们就好好准备下面向对象啰.

评分

3

查看全部评分

霸王祥云 发表于 2015-12-16 10:26:23 | 显示全部楼层
楼主答得不错,感谢分享,我也快要面了
回复 支持 反对

使用道具 举报

jefferyy 发表于 2015-12-18 14:47:09 | 显示全部楼层
面经很详细 多谢楼主
回复 支持 反对

使用道具 举报

jefferyy 发表于 2015-12-18 15:17:00 | 显示全部楼层
two sum 是Leetcode的原题
两种不同实现 网上好的实现. Waral 鍗氬鏈夋洿澶氭枃绔,
http://yuanhsh.iteye.com/blog/2186428
https://leetcode.com/discuss/19562/java-solution-o-n-add-o-1-find-and-o-n-space
回复 支持 反对

使用道具 举报

jefferyy 发表于 2015-12-18 15:32:29 | 显示全部楼层
网上找到的答案
[Leetcode] Shortest Word Distance 最短单词间距. 1point 3acres 璁哄潧
http://segmentfault.com/a/1190000003906667
回复 支持 反对

使用道具 举报

wzrthhj 发表于 2016-5-19 04:45:36 | 显示全部楼层
hi,   linkedin一面结果出来了吗?通过了吗?
. Waral 鍗氬鏈夋洿澶氭枃绔,
加我QQ好不好:1484418067
回复 支持 反对

使用道具 举报

bingbing0000 发表于 2016-8-11 07:40:45 | 显示全部楼层
想问楼主, linkedin的电面一般是几轮啊?
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-9 22:51

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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