一亩三分地论坛

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

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

领英 店面 Data Infra组

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

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

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

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

x
不久前刚面的linkedin,由于对data方面感兴趣,被安排面的data infra组,回馈地里
是一个国人大哥面的
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.超水的算法题. Waral 鍗氬鏈夋洿澶氭枃绔,
// 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']++;. 鍥磋鎴戜滑@1point 3 acres
    }
    StringBuilder sb = new StringBuilder();
    for (char c='a'; c <='z'; c++) {. more info on 1point3acres.com
        if (count[c-'a']==0) continue;
        for (int j = 0; j<count[c-'a']; j++)
            sb.append(c);
    }
    return sb.toString();
}


4.design blockedQueue (忽略注释,注释是国人大哥后来讨论如何优化的时候写的)
public interface BlockedQueue <T> {
  BlockedQueue(int capacity);
  void put(T data);
  T poll();
}. 鍥磋鎴戜滑@1point 3 acres

public class myBlockedQueue <T> implements BlockedQueue {
    private Queue<T> myQueue;
    private int capacity = 20;. 鍥磋鎴戜滑@1point 3 acres

    public myBlockedQueue(int capacity) {
        myQueue = new LinkedList<>();
        this.capacity = capacity;
    }

    public synchronized void put (T data)
            throws InterruptedException{. 1point 3acres 璁哄潧
        while (myQueue.size() == capacity) {
            wait();  // this.wait();
        }

        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();
        }

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

.1point3acres缃        return data;.鏈枃鍘熷垱鑷1point3acres璁哄潧
    }
}

.鐣欏璁哄潧-涓浜-涓夊垎鍦

评分

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
. 鍥磋鎴戜滑@1point 3 acres楼主有被要求要时间 能够多个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呢? 多谢
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-10 16:57

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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