2018百度暑期實習筆試-算法崗位(機器學習、數據挖掘、天然語言處理崗位)

果真不愧是百度,算法崗位的題目在廣度和深度方面都超過了我以前作的幾家,在這裏放出部分我記得的筆試題,若有侵權,請聯繫做者刪除html

 

題目類型:30選擇+1道問答+1道系統設計+2道編程,題量很大python

 

1、選擇題ios

選擇題面很是寬,不建議花費太多時間,涉及到的知識點有C++、python、數據庫、分頁式存儲管理、機器學習、天然語言處理、數據結構、操做系統,基本是應有盡有,估計這麼設計就是爲了讓你們快點蒙完,而後作後面的題目算法

 

2、問答題數據庫

問答題問了天然語言處理的相關知識編程

  • 什麼是統計語言模型?
  • 統計語言模型中的ngram模型是什麼概念?相關的公式推導是?
  • 如何估計ngram模型中的參數

答案能夠參考 http://www.javashuo.com/article/p-fhttruly-hn.html數據結構

https://blog.csdn.net/ed_new/article/details/51924535機器學習

 

3、系統設計題學習

要求設計一個推薦系統,我我的認爲推薦系統還算是一個比較常考的問題,建議筆試以前認真準備一下,不然很難回答上來。測試

 

 

4、編程題

(1)連分數比大小

連分數能夠表示爲(a0;a1,a2,……,an),這樣直觀的數學表示爲:

 

輸入

n,以後是n+1個數字,分別表示a0,a1,……,an

m,以後是m+1個數字,分別表示b0,b1,……,bn

要求比較以上兩個連分數(分別記爲x和y)的大小,n和m不超過100000

 

輸出

若x>y,輸出「>」,若x<y,輸出「<」,不然輸出「=」

 

分析:這盜圖並非很難,可是因爲我最後時間不夠,致使寫的代碼沒時間上傳編譯,我本身測試了幾組數據,問題不大。個人思路是先比較兩個數字是否相等,以後把連分數化爲小數進行比較。使用的數據結構爲vector,代碼以下:

 1 #include<iostream>
 2 #include <vector>
 3 #include <algorithm>
 4 using namespace std;
 5 int main()
 6 {
 7     vector<int> x(100100);
 8     vector<int> y(100100);
 9     int numX, numY;
10     //double resX = 0.0,resY = 0.0;
11     cin >> numX;
12     for (int i = 0; i < numX + 1; i++)
13         cin >> x[i];
14     cin >> numY;
15     for (int i = 0; i < numY + 1; i++)
16         cin >> y[i];
17     if (x == y)
18         cout << '=' << endl;
19     else
20     {
21         double tempX = x[numX];
22         for (int i = numX-1; i >= 0; i--)
23         {
24             tempX = x[i] + 1.0 / tempX;
25             //resX += 1.0 / x[i] + x[i - 1];
26         }
27         double tempY = y[numY];
28         for (int i = numY - 1; i >= 0; i--)
29             tempY = y[i] + 1.0 / tempY;
30     
31         //cout << tempX << endl;// << "  " << tempY << endl;
32         if (tempX > tempY)
33             cout << '>';
34         else
35             cout << '<';
36     //    cout << temp << endl;
37     }
38     return 0;
39 }

 

(2)區域劃分

相關文章
相關標籤/搜索