美文网首页
文章收藏

文章收藏

作者: 恬甜咖啡糖_0301 | 来源:发表于2016-06-29 23:30 被阅读0次

    iOS面试题系列之常见算法

    排序算法整理

    字符串
    【3】最长回文子串
    【3】最长无重复子串
    【1*】字符串转数字
    【4】KMP 算法
    【2】字符串全排列
    【2*】翻转字符串

    动态规划
    【2】背包问题
    【3】连续子数组的最大和
    【4】实现简单的正则表达式匹配

    数组
    【3】求两个等长、有序数组的中位数(二分法)
    【4】求两个不等长、有序数组的中位数
    【3】旋转数组求最小值【3】旋转数组求查找某个值是否存在(二分法)
    【4】每行从左到右,每列从上到下递增的二维数组中,判断某个数是否存在(剑指 offer 第 3 题)
    【3*】数组中出现次数超过一半的数字
    【3*】第 k 大的数(拓展:最大的 k 个数)
    【3
    】有序数组中某个数字出现的次数(提示:利用二分搜索)

    链表
    【2】反转链表(使用递归和迭代两种解法,了解头插法)
    【3】删除链表的当前节点
    【3】删除倒数第 k 个节点
    【1】两个有序链表合并
    【4】复杂链表的复制
    【2*】判断链表是否有环
    【3*】两个链表的第一个公共节点(提示:考虑链表有环的情况)
    【3】删除链表中重复节点


    【3】根据中序和后序遍历结果重建二叉树【3】根据中序和前序遍历结果重建二叉树
    【2】翻转二叉树
    【2】从上往下打印二叉树 (BFS 的思想)
    【3】判断某个数组是不是二叉树的后序遍历结果 (剑指 offer 第 24 题)
    【3】二叉树中和为某个值的路径
    【3*】二叉树中某个节点的下一个节点 (强烈推荐准备一下,剑指 offer 第 58 题)


    【2】用两个栈实现队列【2】用两个队列实现栈
    【2】实现一个栈,可以用常数级时间找出栈中的最小值
    【3】判断栈的压栈、弹栈序列是否合法(剑指offer 第 22 题)

    排序
    了解以下排序的时间、空间复杂度,是否稳定,实现原理
    归并排序、拓展:求数组中的逆序对个数
    快速排序 重点:partion
    函数的实现
    堆排序
    数组元素值域已知时,考虑 基数排序桶排序

    位运算
    【2】给一个十进制数字,求它的二进制表示中,有多少个 1 (n &= n - 1)
    【3】给一个数组,所有数字都出现了偶数次,只有一个出现了一次,找出这个数
    【4】给一个数组,所有数字都出现了三次,只有一个出现了一次,找出这个数
    【3】给一个数组,所有数组都出现了偶数次,只有两个数字出现了一次,找出这两个数

    网络层
    【博客】我的六篇总结————不到一周
    【书】图解 TCP/IP————半个月
    【书】TCP/IP 详解————没读过,感觉至少需要一个月
    【书】TCP/IP 协议簇————没读过,感觉至少需要一个月

    光读书是没有用的,一问到实际问题很容易懵逼,以下是我总结的一些问题:
    简介 TCP 和 UDP 区别,他们位于哪一层?
    路由器和交换机的工作原理大概是什么,他们分别用到什么协议,位于哪一层?
    描述TCP 协议三次握手,四次释放的过程。
    TCP 协议是如何进行流量控制,拥塞控制的?
    为什么建立连接时是三次握手,两次行不行?如果第三次握手失败了怎么处理
    关闭连接时,第四次握手失败怎么处理?
    你怎么理解分层和协议?
    HTTP 请求中的 GET 和 POST 的区别,Session 和 Cookie 的区别。
    谈谈你对 HTTP 1.1,2.0 和 HTTPS 的理解。

    OC
    首先两本必备的神书一定是要读完的。一本是讲 OC 的《Effective Objective-C 2.0》,中文名叫:“编写高质量 iOS 与 OS X 代码的 52 个有效方法”。另一本书叫:《Objective-C 高级编程》。前者讲解 OC 中各种细节,后者主要讲了 ARC、Block 和 GCD。
    光是读书,思考不够,很容易在面试时被问懵逼,所以建议一遍尝试回答面试真题,一边阅读以下总结性的文章,重要性不分先后:
    检测内存泄露
    KVO与KVC原理KVO、Notification、Delegate优缺点最推荐的官方文档
    GCD 与 NSOperation
    Runtime
    block
    atomic 线程安全@synchronized
    对象的深浅复制
    招聘一个靠谱的iOS
    消息传递机制
    深入理解Objective-C:Category

    iOS 开发
    RunLoop
    Cell 图片异步加载优化
    iOS 函数式编程的实现 && 响应式编程概念
    内存恶鬼drawRect
    UIKit 性能调优(主要是UITableView)
    优化UITableViewCell高度计算的那些事
    高性能图片架构与设计
    轻量化视图控制器
    UIView的生命周期
    高效设置圆角
    事件的传递和响应机制
    ReactiveCocoa 和 MVVM 入门

    iOS
    Block没那么难1
    Block没那么难2
    Block没那么难3

    以 iOS 中的UITableView
    UIKit性能调优实战讲解
    优化UITableViewCell高度计算的那些事

    iOS自定义转场动画实战讲解

    iOS多线程编程——GCD与NSOperation总结

    UITableView优化技巧

    【阿峥教你实现UITableView循环利用】

    离屏渲染优化

    AutoRelease

    相关文章

      网友评论

          本文标题:文章收藏

          本文链接:https://www.haomeiwen.com/subject/jeexjttx.html