要回国了,写个简单的总结吧。

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投
内推多家公司面试
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
把贵司招聘信息放这里
查看: 2003|回复: 7
收起左侧

google电面面经

[复制链接] |试试Instant~ |关注本帖
kennethinsnow 发表于 2015-11-26 12:04:58 | 显示全部楼层 |阅读模式

2015(7-9月) 码农类General 博士 全职@Google - 内推 - 技术电面  | Pass | 在职跳槽

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

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

x
打电话,就在google doc出题写码。题目不难但是都很长。

1. List ways you can use an int[] to keep track of a bunch of integers so that you can quickly answer the question if a particular integer is in that bunch.

To conceptualize:
class X {
  int[] storage;
  // other members if you like, but main storage should be int[]
  
  X(Collection<Integer> numbers) {
    // Setup
  }
. 牛人云集,一亩三分地
   public boolean contains(int v) {
     // this needs to be fast
   }
}
.留学论坛-一亩-三分地
Provide complexities (big-O notation) of lookup, storage required, and storage setup time.


lookup O(?)
storage required
storage setup O(?)
Straight copy
n
n
n
Sorting
log n
n
n log n
Bit compression
n
½ n
n
Hashing
1
2n
n
Bit vector
1
range/32
n


numbers % capacity
Range 1000-10000
9000 -> 14 bits instead of 32 bits

2. Given a tool to inspect classes for their dependencies, can you design an algorithm to determine the complete transitive closure of a set of classes?
只需实现analyze method,就是一个BFS
public interface ClassParser {
  Collection<Classname> parse(ZipInputStream inp, Classname classname);
}


public class Analyzer {
  private Parser parser;
  private Map<Classname, File> catalog;
. 一亩-三分-地,独家发布
  public Analyzer(Map<Classname, File> catalog,
      ClassParser parser) {
    this.catalog = catalog;
    this.parser = parser;
  }

.留学论坛-一亩-三分地
  public static Collection<Classname> analyze(Iterable<Classname> toAnalyze,
      Map<Classname, File> catalog,
      ClassParser parser) {
    // Ignore this for now
  }
. From 1point 3acres bbs
  public Collection<Classname> analyze(Iterable<Classname> toAnalyze) {
    Queue<Classname> myQue = new LinkedList<>(toAnalyze);
    Set<Classname> mySet = new HashSet<>(toAnalyze);
    while(!myQue.isEmpty()){
      Classname cur = myQue.poll();
      for(Classname ccl : findDependencies(cur)) {
        if(!mySet.contains(ccl)){
           mySet.add(ccl);
          myQue.offer(ccl);
        }
      }
    }
    return mySet;
  }

  private Collection<Classname> findDependencies(Classname toAnalyze) {
    ...
  }
}

. 1point3acres
Example:
toAnalyze = A.class, B.class

calling findDependencies for A.class returns C.class, D.class
calling findDependencies for B.class returns C.class, E.class
calling findDependencies for C.class returns D.class, F.class
calling findDependencies for D.class returns E.class, F.class
calling findDependencies for F.class returns E.class
calling findDependencies for E.class returns {empty collection}
来源一亩.三分地论坛.
You should return: A.class,B.class,C.class,D.class,E.class,F.class (in any order)

评分

1

查看全部评分

brian1118 发表于 2015-11-27 22:57:45 | 显示全部楼层
第二題不是DFS topology sort嗎?
回复 支持 反对

使用道具 举报

 楼主| kennethinsnow 发表于 2015-11-28 02:44:13 | 显示全部楼层
brian1118 发表于 2015-11-27 22:57
第二題不是DFS topology sort嗎?

DFS也可以,不过BFS算法更容易写. Waral 博客有更多文章,

补充内容 (2015-11-28 04:13):. 1point 3acres 论坛
不过不能理解成topologic sort, 因为可能会有环。
回复 支持 反对

使用道具 举报

bobzhang2004 发表于 2015-12-1 11:46:30 | 显示全部楼层
kennethinsnow 发表于 2015-11-28 02:44
DFS也可以,不过BFS算法更容易写

补充内容 (2015-11-28 04:13):
.本文原创自1point3acres论坛
这完全不是topological sort啊,是weak component吧?
回复 支持 反对

使用道具 举报

bobzhang2004 发表于 2015-12-1 11:47:17 | 显示全部楼层
楼主第一题最后就是自己用array实现一个hashmap?
回复 支持 反对

使用道具 举报

 楼主| kennethinsnow 发表于 2015-12-1 12:20:28 | 显示全部楼层
bobzhang2004 发表于 2015-12-1 11:47. more info on 1point3acres
楼主第一题最后就是自己用array实现一个hashmap?
. 1point 3acres 论坛
最好的叫bitmap/bit vector
就是比较几种结构的存储,查询,空间复杂度
回复 支持 反对

使用道具 举报

bobzhang2004 发表于 2015-12-1 13:08:59 | 显示全部楼层
kennethinsnow 发表于 2015-12-1 12:20
最好的叫bitmap/bit vector
就是比较几种结构的存储,查询,空间复杂度

好的,对bit vector不熟。。。
回复 支持 反对

使用道具 举报

 楼主| kennethinsnow 发表于 2015-12-1 13:44:31 | 显示全部楼层
bobzhang2004 发表于 2015-12-1 13:08
好的,对bit vector不熟。。。

我当时也不知道,不过他就是看一下你的分析能力。他告诉你这个结构之后你能分析出复杂度就行了
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

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

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

custom counter

GMT+8, 2018-5-27 07:53

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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