推荐:数据科学课程和书籍清单以及培训讲座


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 1359|回复: 4
收起左侧

领英 店面 Data Infra组

[复制链接] |试试Instant~ |关注本帖
清华金丝栗 发表于 2016-11-13 00:40:43 | 显示全部楼层 |阅读模式

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

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
不久前刚面的linkedin,由于对data方面感兴趣,被安排面的data infra组,回馈地里. Waral 鍗氬鏈夋洿澶氭枃绔,
是一个国人大哥面的
1.有cache有database的系统,你会如何执行写操作?
其实我也没有系统的学过这些东西,大概知道现在cache里开辟一个block,写满了在flush到database里,不过国人大哥更想听到的是对不同方法之间的利弊权衡,另一种是write through,写cache的同时写database,这种方法会慢,但是保证了consistency,突然崩了也可以恢复数据,distributed system里面也比较容易access data,否则cache也不好share
2. Java里final,finally, finallize分别解释, cc150有详细介绍
3.超水的算法题. from: 1point3acres.com/bbs
// input contains only a-z
// return a string sorted in alphabetically
// input: zhcbca  output: abcchz
String sortString(String input) {
    if (input==null || input.length() <= 1) return input;
    int[] count = new int[26];
    for (int i=0; i<input.length(); i++) {
        count[input.charAt(i)-'a']++;
    }
    StringBuilder sb = new StringBuilder();
    for (char c='a'; c <='z'; c++) {
        if (count[c-'a']==0) continue;
        for (int j = 0; j<count[c-'a']; j++)
            sb.append(c);
    }
    return sb.toString();
}
.1point3acres缃

4.design blockedQueue (忽略注释,注释是国人大哥后来讨论如何优化的时候写的)
public interface BlockedQueue <T> {
  BlockedQueue(int capacity);
  void put(T data);
  T poll();
}
-google 1point3acres
public class myBlockedQueue <T> implements BlockedQueue { 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
    private Queue<T> myQueue;
    private int capacity = 20;

    public myBlockedQueue(int capacity) {. From 1point 3acres bbs
        myQueue = new LinkedList<>();. 1point3acres.com/bbs
        this.capacity = capacity;
    }

    public synchronized void put (T data)
            throws InterruptedException{
        while (myQueue.size() == capacity) {
            wait();  // this.wait();. more info on 1point3acres.com
        }
. from: 1point3acres.com/bbs
        myQueue.offer(data);
        notifyAll();  // this.notifyAll(); notify one of threads blocked at poll();
    }

    public synchronized T poll()
            throws InterruptedException {
        while (myQueue.size() == 0) {
            wait();  // this.wait();. from: 1point3acres.com/bbs
        }

        T data = myQueue.poll();
        notifyAll();  // this.notifyAll();  notify one of threads blocked at put();

        return data;
    }
}

评分

1

查看全部评分

honghunan 发表于 2016-11-13 10:54:32 | 显示全部楼层
谢谢楼主的答案!你这个写的很不错!
回复 支持 反对

使用道具 举报

say543 发表于 2016-11-13 15:25:16 | 显示全部楼层
楼主有被要求要时间 能够多个put or get吗 ? 像semahpore?
回复 支持 反对

使用道具 举报

 楼主| 清华金丝栗 发表于 2016-11-14 03:03:58 | 显示全部楼层
say543 发表于 2016-11-13 15:25
楼主有被要求要时间 能够多个put or get吗 ? 像semahpore?

没有,店面的时间估计来不及,加聊天还问了那么多道题,但是我估计要是去onsite,肯定会一直follow up一直改的,当时他只是跟我讨论了一下我的版本还有哪些问题,其实我对multi-threading都不熟,算是蒙过关了
回复 支持 反对

使用道具 举报

小A要当码农 发表于 2016-11-30 04:10:35 | 显示全部楼层
清华金丝栗 发表于 2016-11-14 03:03
没有,店面的时间估计来不及,加聊天还问了那么多道题,但是我估计要是去onsite,肯定会一直follow up一 ...

楼主,我也对multi-threading不熟。想问一下你, 比方说你这个例子。 如何按照面试官的注释里面的要求只notify一个thread呢? 多谢
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-8-19 00:52

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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