Apple Intern面经 面试细节详解|两轮纯 Coding 的 Apple 面经

58次閱讀
No Comments

今年 Apple Intern 发面试真的很多,但我还是看到一部分同学连 OA 都没有。 我个人判断很大概率是简历问题。众所周知每家大厂简历偏好都不一样,没被捞先看看你项目是不是不符合谷歌风格。 这篇 Apple Intern面经 依然是原创真实面经,不是那种地里拿出来再改编的。

Apple Intern面经

OOD

我们要用面向对象的方式来设计一个停车场系统。 这个停车场呢,不是只有一层,而是有好几层。每一层里面,又分成一排一排的停车位。停车场要能停不同类型的车,比如:摩托车,小汽车,公交车。然后这个系统要具备两个核心功能:能查到一辆车停在哪一层、哪一个位置,车开走的时候,能自动算出该交多少钱停车费。

思路:停车场系统包含以下核心类:

  1. Vehicle(车辆基类):定义通用车辆属性
  2. Motorcycle, Car, Bus(具体车辆类):继承自Vehicle
  3. ParkingSpot(停车位):记录车位信息
  4. Level(楼层):管理每层的车位
  5. ParkingGarage(停车场):整个停车场的总管理

Code

题目:给 a[0]…a[N-1],找 i<=j 且 a[i]=a[j],使得子数组和 a[i]+…+a[j] 最大。

这题看着像“找相同值的两端”,但核心其实是:固定右端 j 时,想让 sum(i..j) 最大,就要让 prefix[i] 尽量小(因为 sum = prefix[j+1] – prefix[i]),并且 a[i] 必须等于 a[j]。所以我会做两件事,先用前缀和 pref[k] = a[0]+…+a[k-1],对每个值 v,维护一个“目前为止出现过 v 的位置里,最小的 pref[i](以及对应下标 i),

当我扫到某个 j(值是 v):先把当前的 pref[j] 拿去更新 v 的最小前缀(这一步也覆盖 i=j 的情况),然后算候选答案:pref[j+1] - minPref[v],更新全局最大值,同时记录 i、j。

解法

数据结构:HashMap(value -> (minPrefix, minIndex)),minPrefix:该 value 作为左端点时,能拿到的最小 pref[i],minIndex:对应的 i,用来最后返回区间。

时间复杂度: O(N)(扫一遍,每步 hashmap 操作),空间复杂度 O(U)(U 是不同数字的数量)

Follow-up 1:如果要求 i < j(不允许单个元素)怎么办?

很简单:更新答案时加个判断 i < j,或者初始化 min_pref 的时机改成“先算候选,再把 j 放进去”,
保证左端一定在右端之前。

Follow-up 2:如果要返回“最大和对应的所有区间”,或者 tie-break(比如和相同取最短 / 最早)?

tie-break 规则写进更新逻辑:和相同:比较长度 (j – i),还相同:比较 i 更小,如果要返回所有区间:需要在 map 里保留“同样最小 pref 的多个 i”(但一般面试不会真让你返回全部,更多是考你怎么定义 tie-break)。

Code + 八股

Apple intern除了考Code,有时候还会八股+Code一起考试,八股主要围绕着操作系统,问了 C 里面的 volatile 关键字,virtual memory的原理,死锁的原理。

Code: 实现一个 hash table。支持插入查找删除。这种面试官有一个特点,喜欢 micro management,比如敲到一半儿给你个 hint,说不要你这么敲要你那么敲。我们只能顺着面试官,否则面试官很可能开始跟你 battle,用一个冲突的视角看到你的方法,算是人之常情,但我们要避免这个麻烦。

BQ:Out of your comfort zone, tight ddl, can not meet your commitment, 如何和 customer 交流。

准备小结

如果你也在准备 Apple Intern 或其他大厂的 OA/VO,可以直接联系 programhelp 了解对应的面试辅助和陪跑支持。如果你想找我辅助面试,或者用 Apple intern面经 中的原题 mock,感受最真实的 feedback,欢迎戳我。

全网唯一一家支持 L6 以上 system design mock,只放真实面经。

求职辅助服务,是关于时间和品质的较量。咨询Programhelp,获取最专业的Tech求职辅助。

author avatar
Jack Xu MLE | 微软人工智能技术人员
Princeton University博士,人在海外,曾在谷歌、苹果等多家大厂工作。深度学习NLP方向拥有多篇SCI,机器学习方向拥有Github千星⭐️项目。
正文完
 0