【海归人才网】一个iOS程序员的BAT面试全记录(内含百度+网易+阿里面试真题).docxVIP

【海归人才网】一个iOS程序员的BAT面试全记录(内含百度+网易+阿里面试真题).docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【海归人才网】一个iOS程序员的BAT面试全记录(内含百度网易阿里面试真题)

【海归人才网】一个iOS程序员的BAT面试全记录(内含百度+网易+阿里面试真题)作为 iOS 开发者,虽然 Swift 已经发布了快两年,但是大公司转向 Swift 的动作还不明显,所以 Objective-C 几乎是必备项,Swift 都不一定能算是加分项。iOS 方面的知识也必不可少,虽然招聘信息上写着如果基础扎实,零 iOS 基础也可以,但是现实往往是比较残酷的。我的面试经历分享一下我的面试经历,题目如下,?破折线后面是简单的解决思路。百度一面:约 1.5 小时首先是四个算法题:不用临时变量怎么实现 swap(a, b)——用加法或者异或都可以二维有序数组查找数字——剑指 offer 第 3题亿级日志中,查找登陆次数最多的十个用户——(不确定对不对,我的思路是)先用哈希表保存登陆次数和ID,然后用红黑树保存最大的十个数。剑指 offer 第 30题简述排序算法——快排,?partion?函数的原理,堆排(不稳定),归并排序,基数排序。然后有一个智力题?,没完整的答出来,好像影响不是很大。最后是 iOS 相关,面试官问的很开放,都是谈谈自己的理解:说说你对 OC 中?load?方法和?initialize?方法的异同。——主要说一下执行时间,各自用途,没实现子类的方法会不会调用父类的?说说你对 block 的理解。—— 三种 block,栈上的自动复制到堆上,block 的属性修饰符是 copy,循环引用的原理和解决方案。说说你对 runtime 的理解。——主要是方法调用时如何查找缓存,如何找到方法,找不到方法时怎么转发,对象的内存布局。说说你对 MVC 和 MVVM 的理解。—— MVC 的 C 太臃肿,可以和 V 合并,变成 MVVM 中的 V,而 VM 用来将 M 转化成 V 能用的数据。说说 UITableView 的调优。——一方面是通过 instruments 检查影响性能的地方,另一方面是估算高度并在 runloop 空闲时缓存。谈谈你对 ARC 的理解。ARC 是编译器完成的,依靠引用计数,谈谈几个属性修饰符的内存管理策略,什么情况下会内存泄露。一面的问题非常基础,主要是算法和 Objective-C,因为准备比较充分,基本上答出来 80% 吧。大约一周后突然二面。二面:约 0.5 小时二面比较突然,先是简单的自我介绍,然后问了三个问题:野指针是什么,iOS 开发中什么情况下会有野指针?——野指针是不为 nil,但是指向已经被释放的内存的指针,不知道什么时候会有,如果有知道的读者还望提醒。介绍 block。—— (接第一问) 我让面试官提示我一下什么时候会有野指针,他说用 block 时,我表示还是不知道,只知道 block 会有循环引用。于是就扯回了一面的问题。说说你是怎么优化 UITableView 的。——还是一面的问题。三面:北京 onsite,约 2.5 小时首先是给一个小时,手写算法:给一个字符串,如何判断它是否是合法的 IP 地址,比如 “” 就是合法的。说说大数相加的思路,动手写代码实现。没能写完,主要是大数相加的时候需要考虑负数,耽搁了一点时间。然后让我简述 TCP 建立和关闭连接时,握手的过程。还问了前者为什么是三次,后者需要四次?接下来是设计了一个实际场景,为了简化问题,我们考虑这个问题:假设有 10W 条电话号码,如何通过输入电话号码的某一段内容,快速有哪些信誉好的足球投注网站出来。比如输入?234?,以下两个号码都会显示在有哪些信誉好的足球投注网站结果中:123456789000188888823400其实最简单的解决方案是遍历所有字符串,然后用 KMP 算法。但是这样的问题是需要遍历 10W 个元素,效率比较低。我想到的是办法是使用索引。建立 100 个索引(00 到 99),比如输入?234?时只需要在索引?23?对应的区域查找即可,可以加快 100 倍速度。但是缺点是插入数据时,需要更新多个索引,数据量会是原来的 10 倍。目前还没有想到好的解决方案。有大神提醒说用字典树,有空研究一番。最后问了 OC 的数组中,添加?nil?对象会有什么问题。当时没答上来,现在想想很不应该,因为数组是以?nil?结尾的,如果添加了?nil?,后续就不能添加对象了。网易笔试:主要是计算机方面的大杂烩,涉及操作系统,网络,移动开发,算法等。难度不大,目测是为了淘汰浑水摸鱼的人,就不列出题目了,算法有三题,直接在线写(木有 IDE 表示很忧伤):很长一道题,读了很久才读懂,目测是 DFS,但是最后没时间了,写了个思路。把 “” 这样的字符串改成 “com/baidu/zhidao/www”。——老题目了,剑指 offer 的,两次逆序排列即可。求数组中和为某个值的所有子数组,比如数组是?[5,5,10,2,3]?一共有四个子数组的和是 1

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档