首页 > 快手运营 > iOS快手面经(已拿offer)送给正准备面试你的
2021
12-09

iOS快手面经(已拿offer)送给正准备面试你的

  写完算法之后又围绕着问了几个问题都是算法基础

  面试官是想接着问这方面的问题的。我当时说了不了解然后就没有后续了。

  这个当时没有答好。其实借助于消息转发protocol和类别都可以间接实现多继承。

  7、有没有哪个开源库让你用的很舒服讲一下让你舒服的地方。

  我这里说了RxSwift中的观察者模式和响应式编程。然后面试官问如果要用OC实现一套RxSwift那样的逻辑应该怎么做。我回答的是结合KVO将一些需要观察的属性通过KVO进行监听然后通过block回调出来。

  题目给定一个个数字arr判断数组arr中是否所有的数字都只出现过一次。

  这个并没有要求写出来说是提供思路就行了。我当时给的方案是在便利数组的时候用一个字典把便利的元素存起来如果在后面的便利过程中新元素在字典中存在过就说明有重复数字出现。时间复杂度是O(n)。

  当时也问了有没有办法进行优化我当时想到了将数组转成Set然后和原数组比较两个集合的数量是否变化。

  10、因为我跟他介绍自己Swift用的多一些然后问了些Swift跟OC的区别各自的优缺点。

  1、给定一个Int型数组用里面的元素组成一个最大数因为数字可能非常大用字符串输出。

  这个是leetcode的179题难度中等。面试官让先说思路再去做题。事先说一下这个题我没有做过。当时的思路是用冒泡法进行排序排序的前提是将较少位数的数字进行循环补齐例如3和30的比较变成33和30的比较34和4的比较变成34和44的比较然后将结果从大到小整合成字符串输出。

  但是做题是却发现没那么简单位数的补齐对于2位和3位数的比较还需要求位数的最小公倍数将他们都转成6位数才能比较。在挣扎了5分钟做了就做罢了。

  后来再去做这道题其实这就是一个排序而已只不过他的规则是按高位优先级更高的原则而这一点跟字符串的比较保持一致如果再加一些Swift的高阶函数就可以写成

  例如需要在某个文件中检索txt文件或者mp4文件那就传入dir和suffix就行了。现在又有一些需求例如需要检索utf8格式的txt或者h264编码的mp4也会有一些例如查找最近一周更新过的文件这样的需求你如何优化这个类让它满足这些情况

  我首先想到的是这么多需求不可能一个方法就完成需要根据不同场景拆出不同的方法但是这些同属于文件操作会有一个共同使用的方法就是检索文件。这个方法需要传入文件目录然后递归的返回当前目录所有文件路径。外部不同场景的调用逻辑就用一个enum完成不同值对应相同范围的不同种类。

  面试官比较关注内部共用的文件检索怎么写他说子文件如果过多怎么办如何优化。我有点懵查找文件至少是要遍历一遍的子文件过多这个应该是没法优化的啊。中间卡了一段时间后来他给了提示说是不是可以用block实现将文件路径返回出去由外部决定当前文件是否可用最终外部的调用类是这个样子。

  我想来确实没毛病用block返回内容至少不会将该目录的所有文件都由一个对象持有而前面一堆的铺垫其实也都是为验证block方案的好处。

  其实事后想下这个问题没啥难的这种写法自己也有写过但当时就是没想起来可能前面一圈的铺垫给我带偏了吧说亏也不亏以后多多努力吧。

  整体来看快手的面试题跟我在别处看到的iOS面试题对比要简单些一面主要是基础知识二面考察更全面一些更多让自己谈一些对技术的理解三面则是更偏实践一些。

  算法虽然三轮都有但相对比较简单即使写不出来有思路也是可以的。当然写出来肯定是加分项所以大家准备面试时应该都看一下。算法相关的排序数组二叉树这几类是重点。

  验,分享给大家同上一篇,分享给大家咯 去哪儿

   一面: LRU缓存算法(讲了一下LRU的淘汰机制,还有一个最近最少使用次数算法) 分库分表 concurrentHashMap原理(结合这个源码的3个特点:1、分离锁 2、volatile可见性3、final的不变性影响的链表。和在读的时候如何保证的并发操作) gc算法,GCroot,哪些可以作为GCroo

  复习,能达到事半功倍效果。 说明 按照手册目录,顺序分别为后端、前端、算法、大数据、产品、策划、运营、客户端 这套

  JavaSpring高级进阶2019-04-22 16:30:00 由于作者

  被蚂蚁金服录取,这期间的焦虑、痛苦自不必说,知道被录取的那一刻,一整年的阴霾都一扫而空了。 笔者面的是阿里的Java研发工程师岗,

  在互联网做了几年之后,去大厂“镀镀金”是大部分人的首选。大厂不仅待遇高、福利好,更重要的是,它是对你专业能力的背书,大厂工作背景多少会给你的简历增加几分竞争力。 但说实话,想进大厂还真没那么容易。我的一个朋友在入职腾讯之前,大大小小的

  ,40k*16 薪! 第一轮主要考察 Java 基础,比如: hashmap 的实现 Java 中的垃圾回收 除了代码之外你还学习了什么技术,框架

  原文链接:由于公众号文章屏蔽外链,文中链接可以点击阅读原文查看4月19日,本人

  ,可能没那么多时间来总结答案,有什么需要讨论的地方欢迎大家指教。主要记录一下

  和CADisplay的区别 二叉树,二叉平衡树,AVL,红黑树,B树的区别 二叉树公共节点 随机数生成,真随机数和伪随机数 不用第三者,怎么交换两个数 1000个瓶子,里...

  确性有待商榷,本人的答案不代表权威,仅仅是个人理解。 文章内部有写混乱,将就着看吧。另外大部分图片加载不出来,,MARKDown格式也不太统一(各平台不一样),由于博主太懒不想改,不过不影响最终效果, 一、硬技术篇 1.对象方法和类方法的区别? 对象方法能个访问成员变量。 类方法中不能直接调用对象方法,想要调用对象方法,必须创建或者传入对象。 类方法可以和对象方法重名。 引伸1. 如果在类

  Swift好多坑,一个人填不来,怎么办 问身边同事吧,又怕被暗笑技术差劲 1、如何追踪app崩溃率,如何解决线上闪退 当

  设备上的App应用闪退时,操作系统会生成一个crash日志,保存在设备上。crash日志上有很多有用的信息,比如每个

  在执行线程的完整堆栈跟踪信息和内存映像,这样就能够通过解析这些信息进而定位crash发生时的代码逻辑,从而找到App闪退的原因。通常来说,crash产生来源于两种问题:违反

  系统规则导致的crash和App代码逻辑BUG导致的crash,下面分别对他们进行.

  相关问题,持续更新,敬请关注 一定不要忘了关注啊(不说三遍但是同样重要)记得看消息 你关注 我送礼:感谢各位的观看,别忘了点个赞,同时我在这里还给各位

  了你们专属资料,关注我,获得私信进裙了解,或者直接进群有管理员主动找你,回复[7]之后,你就能

  前言: 每年三四月份都是招聘高峰期,也就是我们说的金三银四,很多想换工作的职场人士都会选择在此时换一份工作,毕竟一年之计在于春,对于公司和个人而言都是一个新的开始。 2021年,各行各业都举步维艰,然而做为

  招满了人的职位,依旧陆陆续续也还有很多的简历投向我们。 前面一段时间给公司

  技术交流裙 进裙密码:123) 1、用递归写一个算法,计算从1到100的和。 func sum(value: Int) - Int { if value = 0 { return 0 } var numb

  历写下来,如果能帮到同样是打工人的你,是我的荣幸。 ps: 因为时间太长了,而且我现场没有笔记,我只能把我印象比较深的问题做一个记录,然后很多重复的问题我就略过了。 涂鸦: 深浅copy的概念和在各个类中的用法和区别(NSString ,NSArray,NSMutableArray)

  历仔细写,对简历里的每一句线.在简历中写出你对某些框架和知识点在工作中的实际应用和自己的理解 4.一天最多

  好相应的知识点,想着帮这个公司解决问题。 5.尽量不要去外包公司,一般的外包公司只会做重复的简单的工作,对产品要求也不高,技术难以进步 ...

  我的2017是忙碌的一年,从年初备战实习春招,年三十都在死磕JDK源码,三月份

  被越来越多的公司使用起来,因此Swift的学习也应该提上日程了。本篇就先探索Swift中的函数,主要包括以下几个方面: Swift函数定义 Swift函数参数与返回值 Swift函数重载 内敛函数优化 函数类型、嵌套函数 一、Swift函数定义 函数的定义包含函数名、函数体、参数及返回值,定义了函数会做什么、接收什么以及返回什么。函数名前要加上 func 关键字修饰。如下为一个完整的函数定义事例: func greet(p

  为什么越来越多的年轻人感觉工作没有动力、职业发展没有希望,迷茫和中年危机等现象普遍发生? 我觉得其中高赞大V说的很一针见血了。 人常说,安居才能乐业。 前些年,房价虽然也不低,但刚工作的年轻人,努力奋斗,攒上几年钱,再借点,踮踮脚,还是能够到的。 而现在。这样的房价,年轻人,即使再踮脚,甚至拉长脖子,也只能望房兴叹。因此,人除了不能安居外,同时也失去了奋斗的目标。所以,在工作中,表现不积极,得过且过也就不足为奇了。 自己想象中的人生规划 努力工作,升职加薪,年薪百万,迎娶白富美,走上了人生巅峰。 现实的


本文》有 0 条评论

留下一个回复