一亩三分地论坛

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

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

6月uber电面

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

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

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

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

x
上周电话面试的Uber,面试官是个老印,交谈过程中感觉人还不错。. from: 1point3acres.com/bbs
面试流程还是那老三样:自我背景介绍,出题,Q&A。
自我介绍:我简单讲了下从哪毕业(master刚毕业, Computer Engineering Major)和一些skills。Project我讲了下我在AI那门课上的project,印度哥哥貌似之前也有过相关的经验所以问了一些细节,但不是很多,还有project遇到的最大challenge。.1point3acres缃

题: 给了个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,老印似乎也表示满意。.鏈枃鍘熷垱鑷1point3acres璁哄潧
答题过程中,我感觉我的思路还挺清晰的,表达也不错,边code边讲解,但是我讲解的比较细所以可能不是很快吧,但如果直接让我写代码不用讲解的话很快就可以写完。


面完以后我自我感觉还挺好的,和老印聊得也不错,觉得应该能有onsite。然后。。。今天收到了拒信。 之前也有过感觉挺不错但被拒的情况,不解啊。。。。难道是我too young too simple???


// This is the text editor interface. . visit 1point3acres.com for more.
// Anything you type or change here will be seen by the other person in real time.
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
// addKey(String key) -> void;
// getCountForKey(String key) -> Int
// getKeyWithMaxCount() -> String. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

/*
. 鍥磋鎴戜滑@1point 3 acresaddKey('a'). 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
addKey('a')
addKey('a')

getCountForKey('a') -> 3
getKeyWithMaxCount() -> 'a'
addKey('b')
addKey('b'). more info on 1point3acres.com
getKeyWithMaxCount() -> a-google 1point3acres
addKey('b')
getKeyWithMaxCount() -> a or b
addKey('b')
getKeyWithMaxCount() -> b
getCountForKey('b') -> 4
decrementKey('b')
decrementKey('b')
getCountForKey('b') -> 2
getKeyWithMaxCount() -> a
*/
. visit 1point3acres.com for more.
class Solution{
    class Struct{
        String key;
        int count;
    }
    Struct keyWithMax;
    Map<String, Integer> map;
    Solution(){
        map = new HashMap<>();
        Struct keyWithMax = new Struct();
. 鍥磋鎴戜滑@1point 3 acres
    }
    public void addKey(String key){
        if(map.containsKey(key)){
            int val = map.get(key);
            val++;
            map.put(key, val);
            int count = keyWithMax.count;
            if(val > count){
                keyWithMax.key = key;
                keyWithMax.count = val;.1point3acres缃
            }
        }else{
            map.put(key, 1);
            if(keyWithMax==null){
                keyWithMax.key = key;
                keyWithMax.count = 1;
            }. 1point 3acres 璁哄潧
        }
    }
. From 1point 3acres bbs
    public int getCountForKey(String key){
        if(map.containsKey(key)){
            return map.get(key);
        }
        else
            return 0;
    }

    public String getKeyWithMaxCount(){
        return keyWithMax.key;
    }

    public void decrementKey(String key) {
        /// ?
    }
}

评分

2

查看全部评分

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

使用道具 举报

 楼主| newFeeling 发表于 2016-6-14 04:44:54 | 显示全部楼层
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
请问楼主~Uber是用Hackerrank嘛?写完代码需要在上面运行一遍吗?test case是自己写的还是他们给的啊?谢谢 ...

用的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
然而还是得有一个变量来存最大的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;. 1point 3acres 璁哄潧
  3.                  keyWithMax.count = 1;
  4.              }
复制代码


这一段写得有问题吧,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里面就初始化过了
真能进入 ...

嗯,你说得对,谢谢指出错误
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-10 23:15

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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