一亩三分地论坛

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

[2017/07/31] Apple电面面经

[复制链接] |试试Instant~ |关注本帖
xuepanchen 发表于 2017-8-1 04:50:05 | 显示全部楼层 |阅读模式

2017(7-9月) 码农类 硕士 全职@Apple - Other - 技术电面 |Other在职跳槽

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

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

x
在LinkedIn上HR找了我,约了电面,在CoderPad上写。面试官是个Seniro Engineer,没什么口音。

1. Given an array A of positive integers, for each query Q(x, y) return the product of all integers in A between indices x and y inclusively.
做法就是建一个辅助array,每个位置上存原数组从头到此所有数的乘积。比如给A = {1, 2, 5, 10, 3},那辅助的B = {1, 1, 2, 10, 100, 300},记得在B的最开始放个1代表开头。
每次query只需要把两个数一除就好,比如Q(1, 3) = B[4] / B[1] . 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

2. What if the number in array is non-negative
问题变成如果有0存在怎么做,就不能直接再用上面的方法。
我一开始说可以用segment tree做(其实我也不确定行不行),preprocessing的时间复杂度是n,query的时间复杂度是log(n)面试官说太慢了。那我说你可以把每种可能都预先算出来,回答的时候在table里lookup一下就行,preprocessing是n*n,回答是1,面试官说占用空间太大。

面试官说怎么修改第一问的方法,这样可以适用于第二问。我就一直纠结于怎么用一个辅助array来解决问题,卡了好久。
其实这题也不难,就是需要两个辅助array。第一个array还是存running product,只是每次遇到0的话就reset成1。
比如给A = {1, 2, 0, 5, 10, 0, 3},那B = {1, 1, 2, 1, 5, 50, 1, 3}. visit 1point3acres.com for more.
第二个array存到现在为止一共看到多少个0。Z = {0, 0, 0, 1, 1, 1, 2, 2}
当查询的时候,先check第二个array看看这个区间里有没有0,如果有的话就返回0。如果没有的话再用上面的方法。. Waral 鍗氬鏈夋洿澶氭枃绔,
比如Q(1, 3),Z[4] - Z[1] = 1,我们知道这个区间里有0,直接返回0。Q(3, 4),Z[5] - Z[3] = 0,代表这个区间里没有0,那返回B[5] / B[3]。
. from: 1point3acres.com/bbs
最后总算是想出来了,很快把简单的代码写了一下。面试小哥都说不容易,你问问题吧。最后小哥说过一两天HR会联系你,GOOD LUCK。. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
总的过程磕磕绊绊,只能期待人品了. from: 1point3acres.com/bbs

祝各位找工或是工作顺利。

.鐣欏璁哄潧-涓浜-涓夊垎鍦

评分

4

查看全部评分

mythal 发表于 2017-8-1 06:17:44 | 显示全部楼层
谢谢面经。请问面的是apple哪个组?
回复 支持 反对

使用道具 举报

 楼主| xuepanchen 发表于 2017-8-1 09:55:25 | 显示全部楼层
mythal 发表于 2017-8-1 06:17
谢谢面经。请问面的是apple哪个组?

Map组,感觉这个组最近招人不断
回复 支持 反对

使用道具 举报

ganqianjun 发表于 2017-8-2 06:48:33 | 显示全部楼层
请问您是工作多少年跳槽的吗. from: 1point3acres.com/bbs
如果方便的话 能够求一下私信recruiter的邮箱或者名字吗. 1point 3acres 璁哄潧
谢谢!
祝offer不断!
回复 支持 反对

使用道具 举报

 楼主| xuepanchen 发表于 2017-8-4 08:54:08 | 显示全部楼层
ganqianjun 发表于 2017-8-2 06:48
请问您是工作多少年跳槽的吗
如果方便的话 能够求一下私信recruiter的邮箱或者名字吗
谢谢!

工作快满两年了,Recruiter叫Ana Chavarria,是在LinkedIn上找的我。
回复 支持 反对

使用道具 举报

linyc_1203 发表于 2017-9-7 11:44:44 | 显示全部楼层
请问楼主电面的话需要自己写test case吗?后天也电面……
回复 支持 反对

使用道具 举报

 楼主| xuepanchen 发表于 2017-9-8 10:41:22 | 显示全部楼层
linyc_1203 发表于 2017-9-7 11:44. Waral 鍗氬鏈夋洿澶氭枃绔,
请问楼主电面的话需要自己写test case吗?后天也电面……

会问你需要哪些test cases,写几个能把general case和corner case都覆盖到就行。
回复 支持 反对

使用道具 举报

linyc_1203 发表于 2017-9-8 12:25:07 | 显示全部楼层
xuepanchen 发表于 2017-9-8 03:41
会问你需要哪些test cases,写几个能把general case和corner case都覆盖到就行。

感谢!!!
回复 支持 反对

使用道具 举报

Catherine8832 发表于 2017-10-12 00:33:35 | 显示全部楼层
谢谢楼主分享,好帖
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-12-14 23:26

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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