关于ios:我的-2020-iOS-BAT-面试心得

1次阅读

共计 9156 个字符,预计需要花费 23 分钟才能阅读完成。

面试

我面试了大大小小的各种公司,BAT、bigo、字节、快手、伴鱼等,因为一些起因,也拒面了一些公司,拿了几家的 offer。

伴鱼

伴鱼是我筹备后加入的第一轮面试,有很多本人筹备得不是很全,也没有齐全进入面试状态,面试后果不是很好,一面就挂了。

看到本文章如果你正在跳槽或者正筹备跳槽无妨动动小手,增加一下咱们的交换群 563513413 来获取一份具体的大厂面试材料为你的跳槽多添一份保障。

一面

  • 算法题:判断均衡二叉树(easy)
  • 代码浏览题:(问输入)

TestObject *object1 = [[TestObject alloc] init];

__block TestObject *object2 = [[TestObject alloc] init];

object1.name = @”Mike”;

object2.name = @”Sean”;

__block int vi = 1;

void (^handler)(NSString ) = ^(NSString name) {

object1.name = name;

object2.name = name;

vi = 2;

}

handler(@”Lucy”);

NSLog(object1.name);

NSLog(object2.name);

NSLog(@”%i”, vi);

引申:

  • 如果__block int vi = 1; 这句改成 int vi = 1 会怎么,为什么
  • 代码中的 block 是什么 block,为什么
  • weak 的实现原理
  • weak 弱援用表是可变的么还是不可变的
  • weak 是在什么时候置 nil 的,如果同时有很多对象对性能影响大怎么办
  • UIView 和 CALayer 的关系和区别
  • UIView 和 CALayer 在动画上的区别
  • frame 和 bounds 在什么状况下是不相等的
  • bounds x,y 肯定是 0,0 么,为什么
  • bounds 改成 (50, 50, width, height)会产生什么,view 自身,子 View?

58

58 我面了很屡次,一开始面的根底研发部门,起初给我转到了企业工具研发,两头工夫拖得有点长,间接拒面了。

一面

  • 说下你在开发过程中遇到过的内存透露
  • NSTimer 怎么解决内存透露
  • Delegate 什么状况下会呈现内存透露,怎么解决
  • Delegate 和 Notification 的区别
  • 多线程相干
  • iOS 中有哪些多线程技术
  • 如果有两个同步工作嵌套会怎么
  • 常见的锁,为什么要加锁
  • C 依赖 AB 工作执行完能力执行,你怎么设计
  • 读写锁底层怎么实现
  • JavaScriptCore 相干
  • 什么是 JavaScriptCore,JS 和 Native 是怎么进行通信的
  • 你晓得 hybrid 么,说说你平时怎么应用的(因为没怎么接触过间接说的不会)
  • 前面就是聊天了,两头交叉问了下动静库和动态库的却别

二面(终面)

58 这个部门的面试就两轮,二面是群面(几个人轮流面你),第一次接触这种面试模式,压力还是有点的。

  • 对我的项目表感兴趣,后面聊了不少我的项目的内容,问了下我的项目的背景,做了啥以及有哪些收益
  • 理解业内性能优化是怎么做的么
  • 你我的项目中是怎么做性能优化的
  • ReactNative 相干
  • RN 的原理
  • RN 和 flutter 的区别
  • 你晓得 RN 拆包么,RN 为什么要拆包
  • JS 是单线程的是怎么和 native 多线程进行交互的(这个问题有点奇葩)
  • JS 和 native 通信的数据结构是什么
  • 你们公司对于线上 JSError 做了哪些事件是怎么解决的
  • 你有什么想问的么

一个守业公司

这个守业公司全程都是在聊天,前面问了些和 iOS 没多大关系的问题,而后就发了口头 offer。

  • 聊天:在公司中学到了啥,为啥要来北京等
  • 有一个 10 个 G 的文件外面每一行都有数字,对这些数字进行排序(两种办法)
  • 怎么将黑白的图片专程黑白的
  • Web 渲染和 Native 渲染有什么异同点

拼多多

拼多多应该是本人面的一个绝对较大的公司,面试过程中和面试官有了点小一致,前面问我源码在哪个文件哪一行,前面问得问题也基本上是我之前没怎么接触过的。

一面

  • 算法: 手写 LFU(用字典写了二十多分钟,面试官让优化只晓得能够用双链表优化,然而个体没能写进去)
  • 一个操作如果耗时 5s 后返回 nil,否则返回一个字符串,你怎么设计(要求手写代码)
  • GCD 中常见的操作(要求写代码)
  • Struct 中有一些成员变量占多少字节
  • 一个 OC 对象在 iOS 中所占内存的字节数(这边和面试官争了下,我说是 iOS 中至多 16 个字节,因为内存对齐,面试官问你确定我说我确定,而后就有了前面的问题)
  • 你看过 alloc 的源码么,你刚刚说的代码是在哪个文件哪一行
  • dealloc 的整个过程
  • NSURLSession 相干的内容(具体忘了)
  • web 和 native 怎么共享 cookie
  • xx(前司)有动静库打包么,你看过 xx ipa(前司 app)的构造么
  • 内联函数和一般函数的区别
  • 怎么 hook 一个 C 函数
  • 有什么想问的么

百度

百度问得和 iOS 相干的较少,CS 根底绝对较多。

一面

  • 聊我的项目:次要问了我的项目的技术栈抉择,以及我的项目中有哪些难点
  • http header 和 body
  • GET 和 POST 申请
  • GET 申请参数肯定是放在 URL 中的么
  • HTTPS(TLS 是啥,怎么建设连贯等)
  • 动静库和动态库的区别
  • +load 和 initialized 办法的区别
  • +load 的调用机会
  • +load 分类中的解决
  • 分类的实现机制
  • 分类和类别的区别
  • 分类中增加属性
  • 关联对象的原理
  • 算法:有一个很大的整形数据,转成二进制求 1 的个数(因为后面聊比拟多,只要求说了下思路)

二面

  • 聊我的项目:本人我的项目偏后端,问了很多和后端相干的内容,后续问的问题也基本上要求从客户端和后端双重角度答复
  • 你理解的网络协议
  • HTTP 和 TCP、UDP 的分割
  • HTTP 和 HTTPS 的区别
  • HTTPS 的原理
  • 在 HTTPS 建设连贯的时候都用了哪些加密算法,为什么要这么设计
  • 常见的加密算法
  • 对称加密算法和非对称加密算法的区别
  • 说说点击一个按钮后关上一个 web 页面从发送网络申请到页面展现都做了啥
  • 为什么能通过一个 URL 就能申请到对应的资源(域名解析等)
  • 如果客户端上有个按钮,点击会触发一次网络申请,在短时间内疾速点击,怎么解决(从客户端以及服务端角度思考)
  • 晓得什么是 HTTPDNS 么
  • GET 申请和 POST 的区别,POST 申请参数能放在 URL 中么为啥
  • 你理解的 HTTP 申请响应状态码
  • 说说为什么要设计 304 这个状态码
  • Web 登录时怎么放弃会话状态的
  • 你晓得 cookie 和 session 的区别么
  • 你晓得常见的网络攻击么
  • 什么是中间人攻打原理,怎么预防
  • 平时用过抓包工具么,说说抓包的原理
  • 如果让你设计一个 HTTPS 抓包你回怎么设计
  • 过程和线程的区别是啥
  • 过程的通信机制
  • 过程 A 和过程 B 通过管道通信的话是在同一个管道么
  • 多线程容易呈现的问题,怎么解决
  • 死锁产生的条件以及对应的解决方案
  • 自旋锁和互斥锁的却别
  • 什么是虚拟内存,虚拟内存和物理内存的关系和区别
  • 行间的换页算法有哪些
  • LRU、LFU
  • 持续问我的项目,为啥要做这些货色,碰到了什么难点
  • 你感觉你的劣势和毛病是啥
  • 本人的将来布局
  • 还有什么想问的么

三面

  • 百度三面中次要问的和职业规划相干的内容,没有太多的参考价值,这边不再叙述

腾讯

因为一开始是在音乐的流程里,约面工夫绝对较晚,pcg 那边想和我先聊下,而后再做抉择,于是腾讯面了腾讯音乐和 PCG 两个部门

PCG

pcg 在音乐之后面,面完一面后说一面过了,然而因为流程在音乐,所以让我抉择一个流程走,我选了音乐,起初音乐挂了后没有好意思去舔回来。

一面

  • 聊我的项目
  • category 的实现原理
  • weak 的实现原理
  • 开发中遇到的 crash
  • 怎么解决这些 crash 的,有什么好的解决方案么
  • 循环援用问题,怎么解决
  • NSTimer 相干,和 runLoop 的关系
  • NSTimer、CADisplayLink 以及 GCD Timer 的比照
  • 算法:求 N!

腾讯音乐

腾讯音乐感觉业务不是很多口,感觉面试官不晓得问我什么好,一面后就没有后续了。

一面

  • 后面聊我的项目:背景收益等
  • 想看机会的起因
  • RN 是这么做到和 native 通信的
  • 如果让你实现 RN 的成果你会怎么设计(这个问题看你功底了)
  • Native 是怎么将办法裸露进来的
  • 需要中的难点,你是怎么解决的
  • A 调用了 B 办法都做了什么事件
  • ISA 指针
  • 64 位后怎么获取 ISA 指针
  • runloop、runtime 工作中有接触过嘛
  • 手指触摸屏幕后零碎都做了哪些事件
  • 怎么监听页面的卡顿
  • 怎么监听函数执行工夫
  • 还有什么想问的么

微博

微博有点迷,感觉面试官就是对着题库问问题,感觉本人答复还 OK,然而一面后不了了之了。

一面

  • 基本上都是一些 iOS 的根底,和本文面经提到的高度反复,不再叙述。

Bigo

Bigo 整个流程推动很快,一面二面都在当天实现,然而 bigo 三面后挂了,有点迷,我猜想是因为二面的算法题没有给出最优解。

一面

  • 算法(三道手写)
  • 字符串转整形
  • 反转链表(递归和非递归)
  • 将两个有序链表合并成一个有序链表
  • iOS 根底:
  • Objective- C 的内存治理
  • ARC 和 MRC 的区别
  • Timer 的应用,怎么防止循环援用
  • autoreleasePool 的底层实现机制
  • autoreleasePool 的底层数据结构,为什么要这么设计
  • iOS 中常见的多线程技术
  • 常见的锁,有什么区别
  • 如果让你设计读写锁,你怎么设计
  • RN、flutter、weex:
  • 你怎么对待这些动态化技术
  • RN、flutter 以及 weex 的区别
  • RN 怎么和 native 通信的
  • 前面简略聊了下将来的布局

二面

  • 算法: 山脉数组找目标值(要求 logN 的工夫复杂度)
  • QA 发现了一个按钮无奈响应点击事件,可能是什么起因导致的(说了五种状况如同没有答到面试官要的点)
  • iOS 响应者链,怎么寻找最合适的响应者,如果为 nil 会怎么办
  • frame 和 bounds 的区别
  • 如果 bounds 的 origin 不是 00 会怎么
  • 你平时用过 Charles 么,说说 Charles 的抓包原理
  • Charles 能抓 HTTPS 么,怎么实现
  • HTTPS 怎么建设连贯的
  • 中间人攻打,怎么防止
  • 多线程个别会有什么问题,请举个例子
  • 为什么会造成上述问题以及解决方案
  • 主队列和主线程的关系
  • 全局并发队列肯定在主线程上运行的么
  • 我的项目相干,用了什么技术,有哪些难点,怎么解决的

三面

  • 自我介绍
  • 为啥想看机会
  • 聊了下我的项目
  • 怎么对待 RN、Flutter
  • 平时有看过什么技术书籍吗
  • 有看过开源框架吗
  • 工作中遇到最难的事件前面是怎么解决的
  • 有什么想问的么

看完文章如果你正在跳槽或者正筹备跳槽无妨动动小手,增加一下咱们的交换群 1012951431 来获取一份具体的大厂面试材料为你的跳槽多添一份保障。

贝壳找房

贝壳找房也感觉有点迷,和面试官感觉聊很不错,问得问题都很凋谢,很考验功底,最初还问我你感觉你过了么。然而一面后就没有而后了。

一面

  • 自我介绍
  • 聊我的项目
  • GCD 看你能说些啥
  • Runtime 看你能说些啥
  • 内存治理看你能说些啥
  • 几个简略的链表问题(具体忘了)
  • 有什么想问的,以及依据简历给我的一些倡议(简历偏差全栈,意思是我工作工夫还不是很长,须要有深度,广度相干的能够后续再思考)

完满世界

完满的面试有点匆忙,面试的问题也很有深度,后续因为必须要去现场面试,出于平安因素思考,没有去面上来。

一面

  • 自我介绍
  • 我的项目中遇到的问题,怎么解决的
  • 聊了聊 OC 中的内存治理
  • 一个对象什么时候会援用计数 +1,什么时候援用计数 -1
  • 对象 A copy 后生成字符串对象 B AB 援用计数是怎么的
  • 如果 A 是可变的呢
  • 关键字,readonly 有理解吗
  • 润饰对象的默认关键字是啥
  • category 相干,category 是怎么实现的
  • category 的构造
  • category 中的办法会笼罩原来类的办法吗
  • category 中怎么辨别开类办法和实例办法的
  • category 的办法是怎么插入到类 (元类) 对象办法列表中的
  • 同时最多执行 5 个工作怎么设计
  • AFN 中 success 和 fail block 是在子线程还是主线程
  • 不通过回到主队列的形式回到主线程(有点没 get 到点)
  • SDWebImage 的下载原理
  • 如果有两个雷同的 url,SDWebImage 是怎么解决的
  • 算法:有个 view 有很多子 view,没个子 view 中也有很多子 view,找出所有的按钮,并切圆角(图的 BFS)

滴滴

滴滴效率是真的高,面试流程一早晨走完,当晚出后果,从面试到发 offer 仅仅用了 4 天左右的工夫。

一面 to 终面

  • 次要波及 iOS(runtime、runloop、内存治理等)
  • 计算机网络(HTTP、HTTPS、TCP/UDP 等)
  • 操作系统(过程线程、过程通信、中断的一些机制以及一些换页算法等)
  • 算法根底(常见的一些链表、树以及数组算法题)

ps:面试题之前均有波及,不再详写

猿辅导

猿辅导面试还是有点难度的,算法写完还要跑 case,第二道题目跑 case 不正确,看代码 debug,前面因为工夫不够没有给出正确后果,前面就没有后续了。

一面

  • 聊我的项目(次要是我的项目中的一些技术点)
  • 聊对大前端的认识(weex、RN、Flutter 比照等)
  • JS 是怎么实现继承的,什么是 JS 的原型链
  • iOS 内存治理(援用计数、修饰词、weak 和 assign 的区别)
  • runtime(什么是 runtime,为啥要有 runtime,你用 runtime 做过什么事件)
  • 怎么进行办法的替换
  • +load 在什么时候调用的,对启动的影响
  • 代码题:ABCDE 五个工作,D 依赖 AB 的执行,E 依赖 BC 的执行,怎么设计
  • GCD 信号量,线程同步等
  • Runloop 是啥,为啥要设计 runloop,runloop 和线程的关系
  • Timmer 为啥会有内存透露的景象,Runloop 会持有 Timmer 么
  • 什么是 source0 和 source1,别离做什么事件
  • 怎么监测 app 卡顿
  • UIView 和 CALayer 的区别,为什么要这么设计
  • 隐式动画和显示动画的区别
  • 算法:两题 LC medium(都要求写完跑 case)
  • 给定一个数字 n 求出全副汇合(n = 3 输入 [[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]])
  • Lc 200 求岛屿个数

高德

这边有个小插曲,因为之前高强度的面试,前面拿了几个不错的 offer 后就不太想持续面了,感觉面试状态也是一个正态分布的曲线,拒了高德面试后 hr 找我聊了下,而后又许可持续面试,前面因为本人的确没有施展出失常的程度,导致一面挂了,不过 hr 起初请我喝了杯咖啡还是蛮开心的。

一面

  • 聊我的项目
  • JS 是怎么和 Native 通信的
  • 模块表是怎么生成的
  • JS 函数注入怎么做的
  • RN 和 Weex 的区别
  • HTTP 申请头
  • HTTP 状态码
  • 分类和 extension 区别
  • 分类的实现机制
  • 分类同名办法的调用
  • 关联对象,策略有哪些,关联对象的 key 为啥要用 static 润饰(这个没有 get 到点)
  • GCD、NSThread 以及 NSOperation 的区别,怎么勾销工作
  • GCD block 内存治理
  • 本人实现一个函数,其中有个形参是 block,这个 block 是什么时候进行 copy 的,肯定会进行 copy 操作嘛
  • 手指点在高德地图上的一个按钮,会产生什么,具体阐明
  • 怎么找到最合适的 view
  • 如过有多个子 VC,是先 VC 还是先 View
  • Runloop 是怎么监听到点击事件的
  • Runloop 和线程的关系,Runloop 能独自存在嘛
  • 怎么做到线程保活
  • A 蕴含 B 蕴含 C,怎么做能力让 C 的点击响应区域是 以 C 对角线为半径的圆弧(要说出具体实现形式)
  • 代码题:
  • 下方代码中三个数组中的 p.name 是啥,为什么

Person *p = [[Person alloc] init];

p.name = @”zhangsan”;

NSArray *a = @[p];

NSArray *b = [a copy];

NSArray *c = [a mutableCopy];

Person *p2 = ;

p2.name = @”lisi”;

  • 下方代码会有什么问题,为什么

NSNotificationCenter *__weak center = [NSNotificationCenter defaultCenter];

id __block token = [center addObserver:kDdiRegisterNotification

object:nil

queue:[NSOperationQueue mainQueue]

usingBlock:^(NSNotification *note) {

[self getDataWithComplete:completeBlock];

[center removeObserver:token];

}];

字节跳动

字节面了两个部门,一个是头条还有一个是抖音,字节是在我回去动了个小手术前面的,面试也不是很在状态。

头条

一面(穿插面)

  • 首先是一组代码,问有啥代码格调不妥的中央(代码遗记了)
  • MRC 和 ARC 的区别
  • ARC 有什么毛病
  • MRC 下 写 setter 办法
  • 代码题:(1、输入什么 2、如果是在自线程中会怎么样)

NSLog(@”1″);

dispatch_sync(^{

NSLog(@”2″);

});

NSLog(@”3″);

  • 你了解的 id 以及 id 和 void * 区别
  • 函数指针和指针函数的区别
  • CALayer 和 UIView 的关系
  • 苹果为什么要这么设计
  • frame、bounds、center
  • layoutIfNeeded、layoutSubViews、setNeedsDisplay 区别
  • 响应者链(顺便说了下残缺的手指触摸屏幕会产生什么引出了后续 runloop 相干问题)
  • runloop source0 和 source1 都是啥
  • runloop 和线程的关系
  • OC 音讯发送机制(提到了 isa、类对象,引出上面问题)
  • 写下类的构造
  • isa 在 32 为和 64 位的区别
  • 什么是元类为啥要这么设计
  • category 和 extension 的区别
  • +load 办法
  • 算法题 判断镜像二叉树

二面

  • 自我介绍
  • 聊我的项目
  • Weex 和 RN 以及 flutter 的区别
  • 要是收到了内存正告怎么办
  • 循环援用和内存泄露
  • Block 造成循环援用的原理
  • Runloop 和 Timer 的关系
  • Runloop 能有很多 Timer 么
  • 什么是 source0 和 source1
  • Timer 肯定是准时的吗,为什么
  • FPS 怎么监控,上传机会
  • 算法:两数之和(要求空间复杂度 O(1))

抖音

抖音面试有点迷,感觉面试官和我齐全在两个频道,面试官问的内容我明明答复了然而他恕我啥都不会,不晓得是不是没有 get 到他的点。

一面

  • 聊我的项目
  • iOS 中 +load 和 initialized 区别
  • iOS 润饰属性罕用的修饰符
  • weak 和 strong 的区别
  • strong 和 unsafe_unretained 区别
  • 什么是单例
  • 对象的比拟
  • 算法:开根号(要求跑 case)

快手

快手也是在我动完小手术前面的,我感觉面试施展失常,和面试官聊也不错,然而玄学的是本人还是挂了,前面有其余 BG 想捞也不想面了。

一面

  • 自我介绍
  • 在学校都做了哪些项目
  • 聊公司我的项目
  • 常见的 crash
  • 怎么解决这些 crash
  • 怎么设计一个 crash 日志回捞零碎
  • Objc 为啥要设计音讯发送机制,间接调函数不好吗
  • 怎么获取函数的堆栈
  • 怎么监控 APP 卡顿
  • APP 启动做了哪些事件怎么优化
  • +load
  • 怎么进行业务解耦
  • APP 性能优化相干
  • 设计一个下载工作
  • 能够并行也能够串行
  • 有最大的并发数量
  • 能够断点续传
  • 如何解耦
  • 缓存怎么设计(说了 LRU、LFU)
  • 微信底部四个 tab 蕴含首页让你实现要多久,为什么(这个真的没有明确是想问啥)
  • 算法:链表反转

总结

一天四轮的面试的确是高强度的,一天下来整个人会很疲乏,导致后面拿到了一些 offer 后,紧绷的弦马上就松懈下来了,前面几轮高德、字节以及快手的面试都没有施展出本人应有的程度,所幸的是整体后果差强人意。面试须要一直复盘总结,不至于这次面试问的问题不懂下次还不懂,还有常识须要一直积攒,不能再长期抱佛脚了。

简历

简历决定着你是否有面试机会,一份好的简历能够让你事倍功半。

  • 能够去网上找一份简历模板
  • 简历尽量精简,最好能管制在一页 A4 纸
  • 要做一些取舍,校园经验尽量不要写了
  • 形容我的项目倡议用 STAR 法令(说分明我的项目背景、指标、做了哪些事件获得了哪些成绩)
  • 本人不是很熟的货色就不要写了,感觉只有写到简历上面试官就默认你精通

iOS 相干

iOS 有很多货色咱们是看不到具体的实现的,毕竟是闭源的,然而咱们能联合咱们的一些教训去猜想苹果的一些实现形式。目前 iOS 面试问的问题越来越细,越来越底层,所以浏览一些源码是及其有必要的,iOS 个别常考的点如下(这边列举得可能并不是很全):

  • Objective- C 语言相干
  • OC 的内存治理(ARC、MRC、autoReleasePool 等)
  • OC 类的构造,class_ro_t、class_rw_t 等
  • OC 的音讯机制
  • KVC、KVO
  • OC 的运行时,能做哪些事件
  • OC 的一些个性(weak 的实现机制等)
  • 分类和类别
  • isa 指针
  • super 与 superClass
  • dealloc
  • KVC 以及 KVO
  • block(类型、变量捕捉等)
  • 循环援用问题
  • swift 相干:
  • 笔者没怎么接触过 swift 这边就不写了
  • iOS 相干
  • UIView 和 CALayer 的区别
  • CoreAnimation
  • 多线程(GCD、NSOperationQueue)
  • runLoop 以及 runLoop 的实现原理
  • 响应者链
  • Timer(NSTimer、CADisplayLink 以及 GCD Timer)
  • iOS 渲染的常识

动态化技术(加分项)

  • 怎么对待这些技术
  • 须要理解下 ReactNative、Flutter 以及 Weex 等支流动态化技术的优缺点
  • 依据理论状况理解下 ReactNative 或 Flutter 等动态化技术的实现原理
  • 理解下 JavaScriptCore,晓得和 native 的通信机制

CS 根底

这部分次要看你根底是不是扎实了,作为一名 RD,不论做什么,这些常识都是要把握的。

操作系统

  • 过程和线程
  • 过程通信
  • 虚拟内存和物理内存
  • 常见的调度、换页算法
  • 中断机制等

计算机网络

  • OSI 七层模型
  • 常见的协定(HTTP、HTTPS、TCP、UDP)
  • HTTP 报文格式
  • GET、POST 却别
  • HTTP 状态码
  • HTTP 和 HTTPS 的区别
  • HTTPS 的连贯建设机制
  • TCP 三次握手以及四次挥手,为什么要三次握手,四次挥手少一次会怎么
  • TCP 和 UDP 区别
  • TCP 的一些平安机制(用塞管制,较验和等)
  • 域名解析等

编译原理

  • 编译的过程
  • 怎么进行一些优化等

算法(脱离编译器手写,最好能肉眼 debug)

算法基本上是工程师面试必然考查的点,当初越来越多的公司面试考查算法,作为 iOS 开发的同学,在面试之前至多要刷下《剑指 offer》上的所有题目,这本书上的题目都是经典中的经典,面试呈现概率极高。有工夫的话能够刷下 LeetCode 上 easy 和 medium 难度的题,iOS 面试,很少有考查 hard 的题目,然而就算是遇到 hard 的题目也不要过于缓和,认真审题,寻找突破口。算法是一个积攒的过程,当初 LeetCode 能够每日打卡,这是一个很好的积攒伎俩。上面列举下常考的数据结构和算法:

  • 数据结构
  • 数组
  • 链表
  • 算法
  • 二分(就自己教训来看呈现概率极高)
  • 分治
  • 排序(8 大排序)
  • 树的遍历(前、中,后)
  • BFS 以及 DFS
  • DP(呈现概率较低)
正文完
 0