蘇州微軟面試記錄

2021-09-28 15:35:36 字數 1047 閱讀 6291

拖同學內推的福氣,有幸能去微軟這所國際巨頭面試,雖然結果是沒有通過,但是也體驗了一番大廠的技術與氛圍

1面 1h 面試官是個93年的帥哥,真的是厲害!

0.面試官介紹了一下面試內容流程,沒錯就是直接就開始寫程式設計題。

1.面試題是這樣的,假設有3棟樓,每棟樓都有對應的高度,假設是(10,15,12),我們有公升序排列的包裹,代號表示為(9,14,25,36),要輸出包裹被deliver到第幾棟大樓的第幾層,這個意思就是假設包裹是9,就輸出第一棟的第9層,19這個樣子。14就是第二棟樓的第四層,24。以此類推。

剛開始就只能想到暴力解法,把這三棟樓的數字分成區間 [(1,10),(11,25),(26,37)]這樣乙個三維陣列,那麼每個包裹的編號就需要看是否在這幾個區間內,遍歷每乙個小區間,比較這個包裹的數字是否小於等於每個區間的最大值,如果成立那麼我們直接輸出這個區間的下標以及item-levels[i][0]+1,這樣就可以輸出第幾棟第幾層,但是這裡的時間複雜度取決於區間的數量,也就是第幾棟樓,而且要比較區間當中的數字,所以至少是o(k*2)的複雜度。那有沒有更快的時間複雜度更低的方法呢?有,就是維護乙個棧,由於我們的包裹編號是公升序排列的,所以可以直接在這個區間就直接把之前的數字給pop掉,留下來的就是這個包裹,不停地pop掉,通過這個思路過程,我們只需要o(k)的時間複雜度。

工程能力,演算法資料結構實在太重要了,在微軟考察的往往都是這些。

2面 1h 面試官穿個運動褲就來面我了,說明還是很尊重員工的個性的哈哈哈

0.直接在去會議室的路上就自我介紹的差不多了。。。

1.講了一下自己的無人機專案。

2.問了作業系統的東西,核心態是什麼(不知道),有沒有寫過併發的**,有沒有寫多執行緒的**來優化過自己的**。程序和執行緒的概念,程序間同步與執行緒間同步的概念。

3.做題,乙個二叉樹,定義n為有葉子結點的結點,l為葉子結點,那麼給定一串前序遍歷過的字串假設(nnlll),求這棵樹的高度。

這道題的解法就直接通過前序遍歷的定義重構一棵二叉樹,這個竟然給忘記了。。。我真的是菜,當場涼涼。

總結:計算機基礎要加強,**能力就不說了吧,甚至對自己的能力還是有點懷疑的,對自己的期望降低一些吧,加油!

九章演算法 蘇州微軟面試題 程式檢查

描述 有一種程式語言,只有以下五種命令,每種命令最多有兩個引數,請檢查給定的程式是否可能無限迴圈。這些命令分別是 label 宣告乙個標籤,引數是乙個字串,且每個標籤只宣告一次。goto 跳轉到乙個標籤,並從標籤處開始按順序執行程式。halt 停機,程式終止。gotorand 隨機跳轉到兩個標籤中的...

微軟面試 微軟面試題 3

微軟面試題 運算 鏈結表和陣列之間的區別是什麼?做乙個鏈結表,你為什麼要選擇這樣的方法?選擇一種演算法來整理出乙個鏈結表。你為什麼要選擇這種方法?現在用o n 時間來做。說說各種 分類演算法的優點和缺點。用一種演算法來顛倒乙個鏈結表的順序。現在在不用遞迴式的情況下做一遍。用一種演算法在乙個迴圈的鏈結...

微軟面試歸來

今下午 點到 點參加了微軟的面試,應聘正式員工。三小時三面,每一面正好一小時。記得大四應聘實習生職位時是兩面,也是每一面正好一小時。從這次面試來看,微軟的sde職位仍然比較注重演算法和資料結構基礎,諸如佇列 堆疊 樹 字串 等等。題目並不是很難,但是面試者需要有很好的編碼功底,以及將基礎的演算法知識...