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


一亩三分地论坛

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

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

6月uber电面

[复制链接] |试试Instant~ |关注本帖
newFeeling 发表于 2016-6-14 04:34:06 | 显示全部楼层 |阅读模式

2016(4-6月) 码农类 硕士 全职@Uber - 内推 - 技术电面 |Failfresh grad应届毕业生

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

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

x
上周电话面试的Uber,面试官是个老印,交谈过程中感觉人还不错。
面试流程还是那老三样:自我背景介绍,出题,Q&A。. from: 1point3acres.com/bbs
自我介绍:我简单讲了下从哪毕业(master刚毕业, Computer Engineering Major)和一些skills。Project我讲了下我在AI那门课上的project,印度哥哥貌似之前也有过相关的经验所以问了一些细节,但不是很多,还有project遇到的最大challenge。
. more info on 1point3acres.com
题: 给了个Hackerrank的链接。题目大致意思是:实现三个function, void addKey(String key) ; int getCountForKey(String key) ;String getKeyWithMaxCount().  例子在代码中给出来了。
我的做法是用Hashmap,value是key被加进去的次数,每次 addKey 就把key加入map中或者increment value。在getKeyWithMaxCout那里想了一会,老印说让我想到什么就说出来,然后我讲了一个不是很efficent的方法,而且说了这是最简单的方法,但肯定有更好的方法。后来我实现的方法是自己建一个class存最大的key和count, 代码如下,写完后老印似乎表示满意,并且问了time complexity。老印然后又问了个follow up,添加一个function:void decrementKey(String key),每次将key 的count减一,但由于时间不多了,所以他让我讲了下我的思路,我立马就想到用binary heap或者priority queue,我讲了我的思路并且回答了time complexity,老印似乎也表示满意。
答题过程中,我感觉我的思路还挺清晰的,表达也不错,边code边讲解,但是我讲解的比较细所以可能不是很快吧,但如果直接让我写代码不用讲解的话很快就可以写完。 鏉ユ簮涓浜.涓夊垎鍦拌鍧.

. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
面完以后我自我感觉还挺好的,和老印聊得也不错,觉得应该能有onsite。然后。。。今天收到了拒信。 之前也有过感觉挺不错但被拒的情况,不解啊。。。。难道是我too young too simple???
. more info on 1point3acres.com

// This is the text editor interface.
// Anything you type or change here will be seen by the other person in real time.
.1point3acres缃
// addKey(String key) -> void;
// getCountForKey(String key) -> Int. 鍥磋鎴戜滑@1point 3 acres
// getKeyWithMaxCount() -> String
. 鍥磋鎴戜滑@1point 3 acres
/*
addKey('a')
addKey('a')
addKey('a')

getCountForKey('a') -> 3
getKeyWithMaxCount() -> 'a'
addKey('b')
addKey('b')
getKeyWithMaxCount() -> a
addKey('b')
getKeyWithMaxCount() -> a or b. from: 1point3acres.com/bbs
addKey('b')
getKeyWithMaxCount() -> b
getCountForKey('b') -> 4. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
decrementKey('b')
decrementKey('b')
getCountForKey('b') -> 2. more info on 1point3acres.com
getKeyWithMaxCount() -> a
*/

class Solution{
    class Struct{
        String key;
        int count;
    }
    Struct keyWithMax;
    Map<String, Integer> map;
    Solution(){
        map = new HashMap<>();.鏈枃鍘熷垱鑷1point3acres璁哄潧
        Struct keyWithMax = new Struct();

    }
    public void addKey(String key){
        if(map.containsKey(key)){. 1point3acres.com/bbs
            int val = map.get(key);
            val++;. from: 1point3acres.com/bbs
            map.put(key, val);. From 1point 3acres bbs
            int count = keyWithMax.count;. 1point 3acres 璁哄潧
            if(val > count){
                keyWithMax.key = key;
                keyWithMax.count = val;
            }.1point3acres缃
        }else{. Waral 鍗氬鏈夋洿澶氭枃绔,
            map.put(key, 1);
            if(keyWithMax==null){
                keyWithMax.key = key;. from: 1point3acres.com/bbs
                keyWithMax.count = 1;. From 1point 3acres bbs
            }. 1point3acres.com/bbs
        }
    }
.鐣欏璁哄潧-涓浜-涓夊垎鍦
    public int getCountForKey(String key){
        if(map.containsKey(key)){. 鍥磋鎴戜滑@1point 3 acres
            return map.get(key);
        }
        else
            return 0;
    }

    public String getKeyWithMaxCount(){
        return keyWithMax.key;
    }
. 鍥磋鎴戜滑@1point 3 acres
    public void decrementKey(String key) {
        /// ?
    }
}.1point3acres缃

评分

2

查看全部评分

Yoyo00 发表于 2016-6-14 04:43:04 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
我觉得写得挺好的啊。有一个小问题就是,你的code只返回最大count的一个key,比如a和b都出现三次的话,你可能只返回b。而例子里好像是要返回所有的key,就是a和b都应该返回。不过我觉得写成你这样应该可以了。。。
回复 支持 反对

使用道具 举报

 楼主| newFeeling 发表于 2016-6-14 04:44:54 | 显示全部楼层
关注一亩三分地微博:
Warald
Yoyo00 发表于 2016-6-14 04:43
我觉得写得挺好的啊。有一个小问题就是,你的code只返回最大count的一个key,比如a和b都出现三次的话,你可 ...

我问了老印,他说随便返回哪个都可以的
回复 支持 反对

使用道具 举报

1064no1carry 发表于 2016-6-16 07:58:26 | 显示全部楼层
想问一下楼主第一问做了多久?谢谢!
回复 支持 反对

使用道具 举报

ryanlr 发表于 2016-6-16 11:10:06 来自手机 | 显示全部楼层
我觉得没必要定义struct class
回复 支持 反对

使用道具 举报

陈润鹏 发表于 2016-6-16 11:50:46 | 显示全部楼层
我觉得LZ答得很好呀 你能问一下HR为什么被拒吗
回复 支持 反对

使用道具 举报

leyhzm 发表于 2016-6-17 08:22:35 | 显示全部楼层
请问楼主~Uber是用Hackerrank嘛?写完代码需要在上面运行一遍吗?test case是自己写的还是他们给的啊?谢谢~
回复 支持 反对

使用道具 举报

 楼主| newFeeling 发表于 2016-6-17 22:54:48 | 显示全部楼层
1064no1carry 发表于 2016-6-16 07:58
想问一下楼主第一问做了多久?谢谢!

大概20分钟吧
回复 支持 反对

使用道具 举报

 楼主| newFeeling 发表于 2016-6-17 22:56:14 | 显示全部楼层
陈润鹏 发表于 2016-6-16 11:50
我觉得LZ答得很好呀 你能问一下HR为什么被拒吗

并没有问,而且他们也不愿给feedback
回复 支持 反对

使用道具 举报

 楼主| newFeeling 发表于 2016-6-17 22:57:18 | 显示全部楼层
leyhzm 发表于 2016-6-17 08:22.鏈枃鍘熷垱鑷1point3acres璁哄潧
请问楼主~Uber是用Hackerrank嘛?写完代码需要在上面运行一遍吗?test case是自己写的还是他们给的啊?谢谢 ...
-google 1point3acres
用的Hackerrank,不用运行的,就算有些typo他们也都不care。我并没有时间写test case,如果有时间可以写一下
回复 支持 反对

使用道具 举报

joyceyin 发表于 2016-6-26 07:00:31 | 显示全部楼层
请问楼主面的是哪个组?
回复 支持 反对

使用道具 举报

liu298871369 发表于 2016-6-26 11:03:58 | 显示全部楼层
getKeyWithMaxCount() 函数不需要返回最大count是多少 所以不用建立struct 而直接用一个string variable来代表拥有最大count的key就好了吧
回复 支持 反对

使用道具 举报

 楼主| newFeeling 发表于 2016-6-26 22:16:16 | 显示全部楼层
joyceyin 发表于 2016-6-26 07:00
请问楼主面的是哪个组?

automation, 可能因为不是entry levl 的原因所以被拒了
回复 支持 反对

使用道具 举报

 楼主| newFeeling 发表于 2016-6-26 22:17:08 | 显示全部楼层
liu298871369 发表于 2016-6-26 11:03
getKeyWithMaxCount() 函数不需要返回最大count是多少 所以不用建立struct 而直接用一个string variable来 ...

然而还是得有一个变量来存最大的count吧
回复 支持 反对

使用道具 举报

liu298871369 发表于 2016-6-27 03:25:57 | 显示全部楼层
newFeeling 发表于 2016-6-26 22:17.1point3acres缃
然而还是得有一个变量来存最大的count吧

是的            
回复 支持 反对

使用道具 举报

谎言之躯 发表于 2016-6-27 14:58:57 | 显示全部楼层
请问添加了void decrementKey(String key)之后,如果用binary heap或PQ的话,其他几个函数怎么实现?
回复 支持 反对

使用道具 举报

huai10 发表于 2016-7-6 15:17:13 | 显示全部楼层
感觉C++是没有decrease key operator, 不知道Java有没有?
回复 支持 反对

使用道具 举报

hongbiao.yang 发表于 2016-7-7 02:35:44 | 显示全部楼层
  1.    if(keyWithMax==null){
  2.                  keyWithMax.key = key;
  3.                  keyWithMax.count = 1;
  4.              }
复制代码

.鏈枃鍘熷垱鑷1point3acres璁哄潧
这一段写得有问题吧,keyWithMax这个变量怎么可能会null,你在constructor里面就初始化过了
真能进入这个if的block里面,铁定要NullPointerException啊
应该在初始化种把count成员变量赋值为0就好
回复 支持 反对

使用道具 举报

xiayewang 发表于 2016-7-7 03:57:06 | 显示全部楼层
请问在hackerrank上怎么写unit test呢?好像没办法导入junit
回复 支持 反对

使用道具 举报

 楼主| newFeeling 发表于 2016-7-7 04:34:15 | 显示全部楼层
hongbiao.yang 发表于 2016-7-7 02:35
这一段写得有问题吧,keyWithMax这个变量怎么可能会null,你在constructor里面就初始化过了. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
真能进入 ...
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
嗯,你说得对,谢谢指出错误
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-7-23 17:04

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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