[八我司] 介绍一下Uber tech stack和各个大组的情况

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
E轮2.5亿美元融资
K12教育独角兽一起作业
北京-诚聘人工智能/教育/大数据岗
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
码农求职神器Triplebyte:
不用海投
内推多家公司面试
把贵司招聘信息放这里
查看: 2569|回复: 24
收起左侧

snapchat 挂经

[复制链接] |试试Instant~ |关注本帖
panlong222 发表于 2016-2-19 07:18:08 | 显示全部楼层 |阅读模式

2016(1-3月) 码农类General 硕士 全职@Snapchat - 内推 - 技术电面  | Fail | fresh grad应届毕业生

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

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

x
昨天刚面的,是第二次电面。过程如下:准点点开视频链接,等了10分钟不见动静,这时收到一个邮件是recruiter说面试官已经等我10分钟了,不见我踪影。。。
看完立刻关闭浏览器重新点击那个视频链接,就连上了,那头的面试官还在面带微笑。。。刚解释了几句,又发现我的麦有问题,对方听不见。。。折腾半天才,重启电脑才解决。
再次连上时,离规定面试起始时间已经过了20分钟了。我那时候的心情就用四个字概括: 心急如焚。

给面试官道歉,解释了几句,然后双方自我介绍,问了下为什么要选择snapchat(感觉snapchat特别喜欢问这个问题,楼主第一轮电面的时候被问到直接说我一点都不了解snapchat。。。),接下来就是coding环节。. From 1point 3acres bbs

题目大意如下:. from: 1point3acres
给定一个全是正整数的array, 和一个targe值。
你可以取任意数目的elements from the array,允许有重复,然后使得这些elements的和等于target
问一共多少种solutions?  需要注意的是:只要排列不一样就视为不同的solution, 如 {1,2} 和 {2,1}算两个solutions,而不是一个。. 围观我们@1point 3 acres

example:
array = {1,2,3}, target = 4. Waral 博客有更多文章,
solutions:. 1point 3acres 论坛
1. {1,1,1,1}
2. {1,1,2}
3. {1,2,1}
4. {2,1,1}. more info on 1point3acres
5. {1,3}
6. {3,1}
7. {2,2}
Therefore, return 7. 来源一亩.三分地论坛.
-google 1point3acres

最开始并没有说这个array全是正数,需要你提问,并且去确认。这个时候面试官会问你如果包含非正数,
有没有algorithm能解决这个问题。这些楼主都没有问题。. 围观我们@1point 3 acres
. from: 1point3acres
很明显要用Dynamic Programming去解。楼主一看时间不多了,来不及多想,凭直觉就上了,写了个看似正确其实是错误的解法。
用了2D array。
因为楼主把红色那句给忽视掉了,楼主的解法是针对solutions里不包含duplicate的解法,这样一来其实题目变得更难。。。面试结束之
后才发现解法本身就大错特错了,而面试的时候面试官
也没发现楼主的解法本质上就不对,只是说“看起来没问题,应该是初始的值不对”。有可能是他觉得没时间了,
没有让我去debug我自己的代码。然后他就给我大致说了他自己的解法,用1D array。然后让我把他的解法code出来,楼主很快搞定,
基本一遍就bugfree了。接着问了下他的方法的时间复杂度,和我的方法的时间复杂度。然后就是我提问的环节。随便聊了几句就结束了。. visit 1point3acres for more.
完了那个黑人小哥面试官还来了句 Hope to see you soon! 哎,今天就收到拒信了,老外也爱说官话吗?. 牛人云集,一亩三分地
. more info on 1point3acres
总体来说我对自己也很不满意,由于最开始耽误了20分钟,我整个过程都火急火燎的,也没太注重交流,担心写代码时间都不够了,题目也没有好好去审,.1point3acres网
其实最后小哥还是多给了20分钟,等于依然是1个小时的面试。细细想来,20分钟的突发状况其实是压倒楼主的最后一根稻草,这道题如果经验丰富点其实可以在很短时间内做出来的。另外感觉snapchat很注重attitude,楼主事先对这个公司做的工作少之又少。

没能拿到snapchat的onsite还是很难过,伤心了一天,求安慰!














. From 1point 3acres bbs

补充内容 (2016-3-2 06:56):

好吧,经地里小伙伴们提醒,这题就是个走楼梯的题。大家可以无视我这么多的分析了- -菜是原罪啊

评分

2

查看全部评分

phantom 发表于 2016-2-19 12:03:48 | 显示全部楼层
gengenhappy 发表于 2016-2-19 11:51
“你可以取任意数目的elements from the array,允许有重复” 这句话有歧义吧。. 一亩-三分-地,独家发布
(1)是允许每个元素取的 ...

这题意思就和走楼梯一样的。。只是一般走楼梯要么走一步要么走两步。。他这相当于规定你可以走{1,2,3,4}步都可以。。

评分

1

查看全部评分

回复 支持 2 反对 0

使用道具 举报

haoxuango 发表于 2016-2-19 09:11:46 | 显示全部楼层
这道题是不是backtracking就好了呢?. 1point 3acres 论坛
.本文原创自1point3acres论坛
没有面挂过的程序员不是好工程师!
回复 支持 反对

使用道具 举报

 楼主| panlong222 发表于 2016-2-19 09:47:42 | 显示全部楼层
haoxuango 发表于 2016-2-19 09:11
这道题是不是backtracking就好了呢?

没有面挂过的程序员不是好工程师!

想了下,确实可以!~哎,自己就想不出来。。。
回复 支持 反对

使用道具 举报

 楼主| panlong222 发表于 2016-2-19 11:24:12 | 显示全部楼层
haoxuango 发表于 2016-2-19 09:11
这道题是不是backtracking就好了呢?

没有面挂过的程序员不是好工程师!
. from: 1point3acres
又仔细想了下 backtracking的复杂度是 O(length的target次方)
DP的复杂度是O(length * target)
差的有点多。
回复 支持 反对

使用道具 举报

gengenhappy 发表于 2016-2-19 11:31:42 | 显示全部楼层
不太理解为什么1d array 可以求解。请lz赐教!. more info on 1point3acres
能想出来的也就是dfs先求得unique解,再对每个解做permutation。
回复 支持 反对

使用道具 举报

 楼主| panlong222 发表于 2016-2-19 11:43:25 | 显示全部楼层
gengenhappy 发表于 2016-2-19 11:31. more info on 1point3acres
不太理解为什么1d array 可以求解。请lz赐教!. more info on 1point3acres
能想出来的也就是dfs先求得unique解,再对每个解做permutat ...

你这个属于brute force了。。。. 1point 3acres 论坛
首先,其实用dfs也可以做到直接把所有的解枚举出来的。这个并不难想。
然后,说说用1array的DP解法:
    int state[] = new int[target + 1]; // state 表示 target为i的时候,有多少种解法。
     state = sum (state[i - array[k]])  (for k = 0,1,...n-1, i - array[k] >= 0)

. more info on 1point3acres
补充内容 (2016-2-19 11:44):
state = sum (state[i - array[k]])  (for k = 0,1,...n-1, i - array[k] >= 0) 来源一亩.三分地论坛.
. 一亩-三分-地,独家发布
补充内容 (2016-2-19 11:45):
斜体字格式有问题。请无视。。
state【i】 = sum (state[i - array[k]])  (for k = 0,1,...n-1, i - array[k] >= 0)
回复 支持 反对

使用道具 举报

gengenhappy 发表于 2016-2-19 11:51:52 | 显示全部楼层
panlong222 发表于 2016-2-19 11:43. 一亩-三分-地,独家发布
你这个属于brute force了。。。
首先,其实用dfs也可以做到直接把所有的解枚举出来的。这个并不难想。
...

“你可以取任意数目的elements from the array,允许有重复” 这句话有歧义吧。. 留学申请论坛-一亩三分地
(1)是允许每个元素取的数目重复. from: 1point3acres
(2)数组中存在重复元素但每个元素只能取一次
如果是第一种情况的话,dp得解。
如果是第二种情况的话,以上dp应该并不能吧
LZ应该说的是第一种吧
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

 楼主| panlong222 发表于 2016-2-19 12:03:06 | 显示全部楼层
gengenhappy 发表于 2016-2-19 11:51
“你可以取任意数目的elements from the array,允许有重复” 这句话有歧义吧。
(1)是允许每个元素取的 ...

嗯 第一种。example里可以看出来的哈。
回复 支持 反对

使用道具 举报

 楼主| panlong222 发表于 2016-2-19 12:05:41 | 显示全部楼层
phantom 发表于 2016-2-19 12:03
这题意思就和走楼梯一样的。。只是一般走楼梯要么走一步要么走两步。。他这相当于规定你可以走{1,2,3,4} ...
.留学论坛-一亩-三分地
正解。                        
回复 支持 反对

使用道具 举报

gengenhappy 发表于 2016-2-19 12:08:57 | 显示全部楼层
phantom 发表于 2016-2-19 12:03
这题意思就和走楼梯一样的。。只是一般走楼梯要么走一步要么走两步。。他这相当于规定你可以走{1,2,3,4} ...

赞!!!
凑字,凑字
回复 支持 反对

使用道具 举报

true_pyemma 发表于 2016-2-19 12:15:00 | 显示全部楼层
可以用完全背包的解法来做吗?
回复 支持 反对

使用道具 举报

haoxuango 发表于 2016-2-19 14:35:23 | 显示全部楼层
panlong222 发表于 2016-2-19 11:43
你这个属于brute force了。。。
首先,其实用dfs也可以做到直接把所有的解枚举出来的。这个并不难想。. 留学申请论坛-一亩三分地
...
. visit 1point3acres for more.
这样感觉就好简单啊 。。。
回复 支持 反对

使用道具 举报

bentison90 发表于 2016-2-24 08:23:29 | 显示全部楼层
应该是走楼梯吧:

        int findComb(vector<int>& candidates, int n) {
                std::sort(candidates.begin(), candidates.end());
                vector<int> dp(n + 1, 0);
                dp[0] = 1;
                for (int i = 1; i < n + 1; i++) {. 1point 3acres 论坛
                        for (int j = 0; j < candidates.size(); j++) {
                                if (i <= candidates[j])
                                        dp[i] += dp[i - candidates[j]];
                                else.留学论坛-一亩-三分地
                                        break;
                        }
                }.本文原创自1point3acres论坛
                return dp[n];
        }
回复 支持 反对

使用道具 举报

 楼主| panlong222 发表于 2016-2-24 10:42:49 | 显示全部楼层
bentison90 发表于 2016-2-24 08:23
应该是走楼梯吧:

        int findComb(vector& candidates, int n) {

能想到走楼梯 这题就迎刃而解了~
回复 支持 反对

使用道具 举报

 楼主| panlong222 发表于 2016-3-2 06:55:38 | 显示全部楼层
好吧,经地里小伙伴们提醒,这题就是个走楼梯的题。大家可以无视我这么多的分析了- -菜是原罪啊
回复 支持 反对

使用道具 举报

nothingtrouble 发表于 2016-3-4 12:25:18 | 显示全部楼层
panlong222 发表于 2016-3-2 06:55
好吧,经地里小伙伴们提醒,这题就是个走楼梯的题。大家可以无视我这么多的分析了- -菜是原罪啊

应该是想太复杂了,其实加上红字更加简单。就是一维dp, 没有红字就是lz说的二维dp了。
回复 支持 反对

使用道具 举报

 楼主| panlong222 发表于 2016-3-4 22:21:55 | 显示全部楼层
nothingtrouble 发表于 2016-3-4 12:25
应该是想太复杂了,其实加上红字更加简单。就是一维dp, 没有红字就是lz说的二维dp了。

你这话楼主爱听~
回复 支持 反对

使用道具 举报

william_gong 发表于 2016-3-4 23:04:23 | 显示全部楼层
请问这题有负输入怎么处理?
回复 支持 反对

使用道具 举报

nothingtrouble 发表于 2016-3-4 23:49:30 | 显示全部楼层
william_gong 发表于 2016-3-4 23:04
请问这题有负输入怎么处理?
.1point3acres网
应该不会有负数的,不然[-1,1],target=1 可以有无穷种方法
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2018-5-25 00:28

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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