小米面試題目(測試開發崗位——不是測試,是測試工具和平台的開發崗位)


目前經歷了小米的三輪面試,都是技術面試。

每次的面試形式都是先進行電話溝通,問一些項目相關的東西,還有基礎知識,然后再線上寫代碼。三面,我一共做了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)在線編程:

  代碼的注釋有/*   */  和   //     兩種,給你一段代碼,把代碼中的注釋去掉之后,輸出去掉注釋后的代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM