《数据科学面试40+真题讲解》,K神本年度最后一次开课


一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推你去多家公司面试
Airbnb 数据科学职位
in analytics and inference
天天打游戏、照样领工资,
你要不要来?
把贵司招聘信息放这里
查看: 937|回复: 1
收起左侧

shopkick second round phone interview

[复制链接] |试试Instant~ |关注本帖
sumingche 发表于 2014-2-22 08:59:46 | 显示全部楼层 |阅读模式

2014(1-3月) 码农类 硕士 全职@Shopkick - 网上海投 - 技术电面 |Other

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

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

x
Shopkick 第二轮面试,server组的人面试我,开始讲了一大堆他做的project如何如何fancy.
然后问我的全是数据库的内容,问我index内部实现是什么,我说b, b+树,问我使用b+树的优点,我说可以降低时间复杂度,降低到logn,. visit 1point3acres.com for more.
并且每一块都是一个page size,并且可以减少IO 查询次数,然后又问我还有什么choice嘛,我说hashmap,他说为什么index不采用hashmap
而使用b+树,我说建hashmap需要额外的空间(其实我感觉建个树,额外指针也需要空间,但是我实在不知道为什么了),于是呢 他就问我如何进行
range search 举了个例子
how do we query for rows that have a date in the year 2013?. more info on 1point3acres.com
然后我说用sql应该这样写
select * from a where data >= "2013-01-01" && data <="2013-12-31" -- what's the complexity if we have a hash index vs. a tree index?
他说这样查找的话,hashmap的时间复杂度是多少,我说是o(n),因为要遍历,他说我get point啦,然后rangquery的程序

Index is a hash table where the key is the column to be indexed; value is primary key

index on name:
hash {
  "Foo" => 1,. more info on 1point3acres.com
  "Bar" => 2,
}. 1point3acres.com/bbs

index on name (as tree):
   Foo (1)
  /   
Bar (2).1point3acres缃

struct Node {.鏈枃鍘熷垱鑷1point3acres璁哄潧
  int key,
  int value,
  Node *left,
  Node *right. 1point3acres.com/bbs

}. visit 1point3acres.com for more.

t  =
     7
   /   \
  3     10
/ \    / \
1   2  9   13

rangeQuery(t, 4, 10) => ?
rangeQuery(t, 8, 12) => ?
...
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
rangeQuery(t, -1, 15) => ?

rangeQuery(root, minKey, maxKey) -> returns all nodes that have keys falling between minKey and maxKey (inclusive). Waral 鍗氬鏈夋洿澶氭枃绔,
.鏈枃鍘熷垱鑷1point3acres璁哄潧
public class Solution{. Waral 鍗氬鏈夋洿澶氭枃绔,
    ArrayList<Node> al = new ArrayList<Node>();
    public ArrayList<Node> rangeQuery(root, minKey, maxKey){

        if(root == null) return al;
        if(root.key <= maxKey && root.key >= minKey) {. 鍥磋鎴戜滑@1point 3 acres
             al.add(root); . Waral 鍗氬鏈夋洿澶氭枃绔,
             rangeQuery(root.left, minkey, maxKey);
             rangeQuery(root.right ,minkey, maxKey);
        }
        else if(root.key > maxKey){
            rangeQuery(root.left, minKey, maxKey);
        }
         else if(root.key < minKey){
            rangeQuery(root.right,minKey, maxKey);
        }
        return al;. From 1point 3acres bbs
    }
}

写的时候有点紧张,有点小bug,等号忘加了,并且arraylist.add()写成 arraylist.get()了,这个错误实在是不该哦,他说这些错误不太重要,因为在IDE上能改过来,他说要清楚index的实现,这个很重要。自己觉得这一轮应该很难过,
这些小公司基本就的bug free.有点瑕疵,onsite基本就没戏,学到了一点,hashmap只有搜索某一item的时候,才是
最快的,但是search a range 就不太适用了,以前在国内学过数据库,但是没想到index实现的问题,cmu 15615如果
能好好学过的话,这次面试就该过了~. Waral 鍗氬鏈夋洿澶氭枃绔,



补充内容 (2014-2-25 22:13): 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
很开心,最后有onsite啦

评分

6

查看全部评分

大屁股妖 发表于 2014-5-13 05:14:29 | 显示全部楼层
明天就要去面这个逗比shopkick了..楼主有onsite的面经吗?感谢..
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-11-25 10:21

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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