美文网首页程序员将来跳槽用面经
最新名企招聘现场,现场实拍笔试部分

最新名企招聘现场,现场实拍笔试部分

作者: iOS开发_小贤 | 来源:发表于2018-06-04 16:11 被阅读669次

    大企面试现场,最新笔试题分享,小编也不断收到网友们投稿(现场笔试实拍)

    现场实拍

    持续关注:iOS首席鉴黄师,持续输出各大公司iOS面试系列文章,欢迎广大程序猿找我投稿面试中碰到的面试题,我会给你一份我的见解和答案,本人有一个iOS内推,面试交流资源共享微信群,联系我,邀请你加入我们,内推群详情可看完文章在文章末尾了解,我前面已经分享100道我招聘的面试题,加入下方面试题分享群直接获取;


    群二维码


    题一:

    针对以下二叉树进行广度遍历(ABCDEFG)和深度遍历(ACGFBED)。描述算法思维或者伪代码实现即可

    答案:

    //广度优先遍历void breadthFirstSearch(Tree root){

        queue nodeQueue;  

    //使用C++的STL标准模板库    nodeQueue.push(root);

        Node *node;

    while(!nodeQueue.empty()){

            node = nodeQueue.front();

            nodeQueue.pop();

            printf(format, node->data);

    if(node->lchild){

                nodeQueue.push(node->lchild);  

    //先将左子树入队        }

    if(node->rchild){

                nodeQueue.push(node->rchild);  

    //再将右子树入队        }

        }

    }

     //深度优先遍历void depthFirstSearch(Tree root){

        stack nodeStack;  

    //使用C++的STL标准模板库    nodeStack.push(root);

        Node *node;

    while(!nodeStack.empty()){

            node = nodeStack.top();

            printf(format, node->data);  

    //遍历根结点        nodeStack.pop();

    if(node->rchild){

                nodeStack.push(node->rchild);  

    //先将右子树压栈        }

    if(node->lchild){

                nodeStack.push(node->lchild);  

    //再将左子树压栈        }

        }

    }

    题二:

     阅读下面一段代码(model 类)  提出你所有的改进建议和代码风格。

    答案:

    NSString 请使用copynonatomic

    int uid 还是需要关键词assign

    NSMutableArray请使用strong

    题三:

    针对常见的崩溃错误,有什么好的调试方法?(例如:unrecognized selector和BAD_ACCES)针对线上版本的崩溃错误,如何进行跟踪调试?

    答案:

    当时打包的时候会有一个文件dsym文件,每次线上的版本可以根据当时的文件,会有一个内存地址,根据当时的地址用xcode的命令就可以在大部分情况可以直接定位到问题所在

    unrecognized

    selector 根据崩溃的日志,可以找到对应的类和响应的调用的方法,然后根据所调用的方法,在现有的代码体系中,根据现有代码的逻辑去检查是否在某些情况下会出现崩溃的问题

    BAD_ACCES 可根据之前的命令找到之前的崩溃所在的代码行

    题四:

     针对常见的界面卡顿现象,阐述你觉得可能的各种原因,以及对应的优化方案。

    答案:

    常见的界面卡顿,一般是在主线程中做了一些耗时的操作。比如网络请求,大量的数据存储,计算,还有就是过于复杂的界面绘制等等。

    解决的办法是。首先在可以考虑加上卡顿监控,监控每一个方法的执行时间。然后找到对应的卡顿的方法,每个方法的实际执行时间,如果时间过长就要去看看该方法是否可以在子线程执行,或者能不能在子线程执行完毕将结果回调到主线程。

    另外绘制界面的时候就需要尽量少使用圆角裁剪,透明色。界面布局的时候尽量使用代码布局。

    相关文章

      网友评论

        本文标题:最新名企招聘现场,现场实拍笔试部分

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