1. 程式人生 > >2014各大網路公司校招筆試演算法題(收集並更新中)

2014各大網路公司校招筆試演算法題(收集並更新中)

從部落格中整理,並不斷的更新,供大家學習和交流,隨後會給出部分演算法題的參考程式碼。


騰訊

1、請設計一個排隊系統,能夠讓每個進入隊伍的使用者都能看到自己在 中所處的位置和變化。隊伍可能隨時有人加入和退出,當有人退出影響到使用者的位置排名時需要即時反饋到使用者。

2、A、B兩個整數集合,設計一個演算法求他們的交集,儘可能的高效。


百度

百度2014筆試演算法題彙總


科大訊飛

1.求一個整數陣列的最大元素,用遞迴方法實現。

#include <cmath>  
using namespace std;  
  
int maxnum(int a[], int n)  
{  
    if(n == 1)  
        return a[0];  
    if(n>1)  
    {  
        return max(a[0], maxnum(a+1,n-1));  
    }  
}  
int main()  
{  
    int num[10] = {0,1,2,3,4,5,6,7,8,9};  
    cout<<maxnum(num,10)<<endl;  
    return 0;  
}
2. 已知一個整數陣列A[n],寫出演算法實現將奇數元素放在陣列的左邊,將偶數放在陣列的右邊。要求時間複雜度為O(n)。

void partition(int A[], int n)  
{  
    int x;  
    int i = 0;  
    int j = n-1;  
    while(i != j)  
    {  
        while( a[i]%2 == 1)  
            i++;  
        while (a[j]%2 == 0)  
            j++;  
        if(i < j)  
        {  
            x = a[i];  
            a[i] = a[j];  
            a[j] = x;  
        }  
    }  
}


金山辦公

1.[長沙理工站]給定 一個int型的整數,程式設計輸出其LED顯示屏形式。如0為:

 --- 

|    |

|    |

|    |

 ---

每個數字之間用空格分開。

2.[湖南大學站]有一個函式:

void unique(std::vector<int> &v);

用來給陣列去重,試寫一段測試程式碼檢查其正確性。

提示1:儘可能找出bug

提示2:你的程式碼應該返回int型,0表示測試通過,1表示出錯。


3.有如下函式原型:

void transferToChinese(int num);(ps:函式名記不太清了,但是無關緊要)

該函式把小於一億的int型數字轉換成中文表示,如:

17:一十七;

110:一百一十;

12345:一萬兩千三百四十五;

10101:一萬零一百零一

提示:注意零的情況。

拓展:考慮縮寫情況,如:

17:十七

美團網

美團網2014筆試演算法題彙總


去哪兒網

去哪兒網2014筆試演算法題彙總


華為

華為2014筆試演算法題彙總


暴風影音

暴風影音2014筆試演算法題彙總


阿里巴巴

阿里巴巴2014筆試演算法題彙總


人人網

人人網2014筆試演算法題彙總


創新工場

創新工場2014筆試演算法題彙總


優酷

1.N個臺階,1<=N<90,每次一個臺階或兩個臺階,求到達臺階N共有多少種方法

2.將long型整數轉換成字串,不能使用庫函式

3.含有n個元素的整型陣列,將這個n個元素重新組合,求出最小的數,如{321,3,32},最小的數為   321323

4.有一根27釐米的細木杆,在第3釐米、7釐米、11釐米、17釐米、23釐米這五個位置上各有一隻螞蟻。 木杆很細,不能同時通過一隻螞蟻。開始 時,螞蟻的頭朝左還是朝右是任意的,它們只會朝前走或調頭, 但不會後退。當任意兩隻螞蟻碰頭時,兩隻螞蟻會同時調頭朝反方向走。假設螞蟻們每秒鐘可以走一釐米的距離。 編寫程式,求所有螞蟻都離開木杆 的最小時間和最大時間。

網易

1、f(0)=0;f(1)=1;f(n)=f(n-1)+f(n-2),求f(n)。

2、有主字串A,子字串B,在A中查詢B

3、寫出你熟悉的排序演算法,並說明其優缺點