【算法】2015-2016 阿里、百度、360、豌豆莢、搜狗面試題部分集錦

已經工做3個多月了。整理曾經資料的時候,順手翻到了以前實驗室小夥伴們面試的記錄。索性就分享出來了,需要的人可以參考一下html

360(c++)java

1面
一、堆排序
二、kmp
三、虛函數的做用
四、top k
五、int 範圍的很是多的數,排序


2面
一、從左上角走到右下角一共多少種走法(用組合數學來講)
二、從左上角走到右下角對角線不能走
三、前序中序求興許
四、怎樣找出分析出一個用戶的年紀,用機器學習的方法
五、說說你學習的機器模型(不懂)
3面
一、爲何沒有機器學習的知識來報咱們部門
二、證實你的學習能力強
三、有啥問題
node


阿里(一面)c++android

1.使用cmd進入命令行模式,鍵盤上單擊隨意字符,對應字符會出現在界面上,這個過程發生了什麼?
 我答得是:保存當前狀態棧,進行IO中斷處理。處理完後繼續進行當前任務。(面試官說要微觀的過程,不理解)
2. 進入命令行模式,光標一直在閃動。這裏又發生了什麼過程?(難道不是等待輸入,不理解想要問什麼微觀過程)
3. 假設讓你設計memcpy(des,src,size)函數,如果不知道所傳參數類型,怎麼知道des的大小和size關係?
4. 相同的問題,對於strcpy(des,src)函數。怎樣知道des的大小(面試官說的是。假設你先給des malloc一段空間,當時你是知道該des指針的大小的,但是他做爲參數傳輸strcpy函數中,怎樣獲取它的大小呢)
5. 說幾個常見的設計模式理解。
6. 若想盡可能防止內存泄露,應該怎麼辦?
    剛開始說的是new和delete要成對出現,被他歧視一通,而後想起了智能指針說了一下。c++



阿里(一面)android面試

activity生命週期
開屏和關屏後activity的生命週期
java內存模型
設計一個android的登陸系統
http狀態碼 post get差異
推送機制(xmpp協議)
介紹一下項目
項目中的問題和解決方式
數據庫優化select語句
冒泡排序
3升的杯子和5升的杯子量出4升的水
優缺點
工做地點選擇
算法


阿里(一面)c++
數據庫

問了在構造函數括號體內初始化和成員列表初始化有什麼不一樣?編程

成員列表的初始化順序windows

拷貝構造函數都在什麼狀況下會被調用?

怎樣防止拷貝構造函數被調用?

默認的拷貝構造函數是怎麼實現的?(還有淺拷貝的問題)

虛函數的做用?

Public,protected,privatekeyword的做用?這3中繼承各自是什麼狀況?

說一下紅黑樹

用過哪些STL的容器?說說各類容器的做用

說一下項目的東西

職業規劃是什麼?


豌豆莢 c++

一面:都是手寫代碼
1.反轉鏈表
2.全排列
3.編輯距離
4.寫生產者消費者+堵塞通知是怎樣實現的


二面:繼續寫代碼
1.簡單自我介紹
2.大數據問題
3.中序前序輸出樹
4.多線程問題
5.總結下了個人問題,仍是很是NICE的一我的


三面:至今不知道這人是會技術仍是真不會
1.裝傻,我不知道網絡編程,你給我講講
2.繼續裝,這個我也不知道你給我講講(J2EE)
3.咱們來寫個代碼吧 上樓問題


搜狗 c++

1、問了項目。特別細節

2、合併n個數組,lc上題

3、找出n個數組一樣的數

4、返回vector引用

5、紅黑樹咋實現的。。。(居然問這個)不懂

6C++寫一下單例(static的。不愜意)

 

二面

問了一個,怎樣找統一詞庫(給你一坨網頁。給你一坨query

怎樣創建一個搜索推薦詞庫(相似百度搜索如下有一條的)

三面

自我介紹

而後給一個數組怎樣壓縮(沒想到好方法)

1億多個字符串文件,找出中位數

而後簡述一下你對cache失效時間的作法。


百度 c++

一、tcp和udp差異 
二、tcp怎麼保證到達順序有序 
三、說說擁塞控制 
四、說說虛地址 
五、講一下你對hadoop生態系統的理解 
六、求樹中,兩個節點之間的最長距離。距離定義爲通過節點數。 
七、翻轉鏈表


百度 c++

1. 自我介紹

2. 介紹項目---介紹印象最深的(影響最大)---爲啥印象最深(收穫最大)

3. 算法

a) 給定N個數,找第二大的數(O(n)),依次隱身找第K大的數(最小最大堆)

b) N!尾部0的個數,比方5!=120那個返回1,詳細解法見編程之美

c) 相似3 Sum這種題目,詳細解法就是排序以後,用先後兩個指針掃描。由此減小一維複雜度。詳情請分析下leetcode之3 Sum

4. 大數據-推薦看csdn july秒殺大數據那節

5. 和經理瞎扯


騰訊地圖 c++

一面:

1. 談項目(20分鐘)

2. 算法(手寫,2題)

Ø 題目1:給定一個有序數組,如[1,2,3,4,5,7,9,10],將數組後半段置前。即循環右移若干位,變成如[7,9,10,1,2,3,4,5],怎樣在變化後的數組中高速找到給定目標;

參考連接:http://www.cnblogs.com/davidluo/articles/1837561.html

(ps:不要試圖去查找右移位數或嘗試將數組分紅兩個有序段而後再作二分)。

Ø 題目2:給定一個數組,數組隨意相鄰的兩個數的絕對值差的大小爲1。給定一個目標t,怎樣高速找到他的位置。

參考連接:http://blog.csdn.net/morewindows/article/details/10645269

二面

Ø 自我介紹(別再反覆簡歷了,會被直接打斷的。

。。)

Ø 項目簡介(比較短)

Ø 我說的是C++/C。問了幾個問題:

A. C和C++差異

B. C++多態、虛函數和麪向對象的理解

C. C和C++是否能相互調用,externkeyword的理解

D. C++編譯器內核(全然不懂。。。

E. 問了一個基類指針問題,實際上問的是基類和派生類內存分配問題(答得很是亂。。。

Ø 問了一個開放性問題,時間比較長:有這樣一個系統,能反映實時路段的擁堵狀況,即輸入一個路段,系統返回一個該路段當前的擁堵情況信息。實現這樣一個系統需要完畢哪些功能模塊。某一模塊的詳細實現(流程,非算法)。問了很久,實在問不下去了,就說這題就到這裏吧。

Ø 因爲我簡歷寫了實驗室定位的項目。而且部門又是騰訊地圖。因此問了一個問題:當前定位的主流方法有哪些,瞭解定位的趨勢(說了百度、高德等等,忘了說騰訊。⊙﹏⊙b汗)


美團/藍汛或者其餘(記不清了)

問答題:

  1. Socket中三次握手的實現
  2. socket鏈接過程
  3. 堵塞與非堵塞、同步和異步
  4. selectepollepoll是怎樣實現的(異步)
  5. 編譯、連接的整個過程

預編譯,編譯,鏈接(動態連接、靜態連接)

  1. 對於下面程序,C編譯器和C++編譯器的差異(C++編譯器編譯後加上輸入輸出參數信息,名字不一樣)

Int f(int a){return 0;}

  1. 內存佈局(程序段、堆、棧、.bss.data…
  2. 爲何要有條件編譯
  3. 內核申請內存的方法(kmalloc…很是多)
  4. ARP解析的全過程
  5. 什麼是虛擬內存(磁盤上)
  6. 什麼是原子操做。舉例說明原子操做
  7. 多態
  8. Static的做用(函數內,全局變量)
  9. 進程棧和線程棧的差異
  10. 線程調度所涉及到的系統資源詳細包含什麼
  11. Inode結構體的做用
  12. 搶佔式操做系統的缺點,怎樣改善(低優先級永遠沒法運行,長時間不運行的低優先級把優先級調高)
  13. 爲何進程調度比線程調度更消耗cpu(多線程共用程序段,不需要進行程序的各類裝載,進程調度需要裝載各類程序段(我是這麼說的))

 

算法:

  1. 兩個有序數組。組成一個排好序的數組(原數組有反覆,新的數組不可反覆)
  2. 鏈表是否有環
  3. 推斷IP是否有效
  4. 大數加法
  5. 包括二維座標中三個點的最小園
  6. 兩個文件10G100G的交集(long類型),交集輸出到文件C
  7. 二叉搜索樹到雙向鏈表
  8. abcd…」字符串中第M個出現N次的字符
  9. 1~1億中所有的質數
  10. 字符串匹配、KMP、亂序的匹配

 

系統設計:

         100張票,很是多我的去搶這些票(好比12306)設計一個系統處理這個問題

 

智力題:

         1100的階乘

         2、一個村子生男則中止,生女則直到生男才中止,問最後男女比例

         3100個囚犯的問題(經典問題)

相關文章
相關標籤/搜索