• 小米面试题目(测试开发岗位——不是测试,是测试工具和平台的开发岗位)


    目前经历了小米的三轮面试,都是技术面试。

    每次的面试形式都是先进行电话沟通,问一些项目相关的东西,还有基础知识,然后再线上写代码。三面,我一共做了6道编程题。

    下面统一做下整理:

    一面:

    (1)电话沟通:

      1.主要是围绕着简历上自己写的项目来提问。感觉小米面试官水平比较高,因为不像hujiang的java面试官一样,问一个学计算机的什么是递归。

      2.给你两张表,变换各种场景,写不同的sql。主要是考察各种关键字的使用,distinct,group,order by,offset

      3.用shell命令对一个文件进行各种处理

      4.http协议状态码的考察

      5.关于接口的并发访问,多线程等问题

    (2)在线编程:

      1.写一个简单的单例模式代码

      2.接触过哪些设计模式?

      3.链表a->b->c->d 反转成a<-b<-c<-d  。反转链表,定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点,链表定义如下:

    struct ListNode
    {
    int             pKey;
    ListNode* pNext;
    };

      4.判断一个数组是否是二叉排序树的后续遍历,写一个方法,输入值为一个整数数组,输出为True 或False。(暂且假设输入的整数数组里任意两个整数都互不相同)这道题目可以用Java来写吗?有什么思路可以写一下

    二面:

    (1)电话沟通:

      1.依然是先聊一下简历上项目的问题;

      2.多态

      3.输入url后面发生了什么

    (2)在线编程:

      1. 有这么一种链表,它的每个结点除了包含指向下一个节点的指针,还包含一个指向该链接中任意一个节点的指针。现需要实现此类链表的克隆算法。 

      请完成clone的代码实现(C++或Java或其他语言),尽量少使用辅助空间。  

    C++:
    struct
    Node { Node* next; Node* random_node; } Node* clone(Node* head) { … }
    Java:
    class Node { 
        Node next; 
        Node random_node; 
    }
    Node clone(Node head) {
    …
    }

      2. 使用shell从一个日志文件中找出出现频率最高的前十个关键词以及次数。如日志文件每行为  2015-09-10 

      3.面板:

      1  2  3

      4  5  6

      7  8  9

      0  <- 

      显示屏:

        123

        一百二十三

      当面板中按顺序点击1,2,3时,显示屏对应显示两行,123和一百二十三,<-是回退键,如此时点击回退键,则显示屏显示12和十二。

      写个程序实现这个功能,面板点击可以认为是标准输入,显示屏输出可以认为是标准输出。

    三面:

    (1)电话沟通:

      1.觉得前面两轮面试怎么样?

      2.觉得你做得最有底气的项目是什么?介绍一下

      3.根据上面说的,面试官说了一种类似的场景,怎么进行处理

      4.给出一种检测内存泄露的方案

      5.一个搜索引擎,目前有两种搜索算法,给出一个方案,量化评估两种算法的优劣。

        1》评估标准需要自己想办法量化;

        2》怎么准备数据;

        3》具体的实施方案……

    (2)在线编程:

      代码的注释有/*   */  和   //     两种,给你一段代码,把代码中的注释去掉之后,输出去掉注释后的代码

  • 相关阅读:
    Linux操作系统(二)
    匿名函数和内置函数
    BeautifulSoup
    Robots协议
    列表和生成器表达式
    迭代器
    排序总结
    图论专题笔记
    Trie树的二三事QWQ
    二分答案经典入门题:)
  • 原文地址:https://www.cnblogs.com/sonofelice/p/4832657.html
Copyright © 2020-2023  润新知