2014各大網路公司校招筆試演算法題(收集並更新中)
從部落格中整理,並不斷的更新,供大家學習和交流,隨後會給出部分演算法題的參考程式碼。
騰訊
1、請設計一個排隊系統,能夠讓每個進入隊伍的使用者都能看到自己在 中所處的位置和變化。隊伍可能隨時有人加入和退出,當有人退出影響到使用者的位置排名時需要即時反饋到使用者。
2、A、B兩個整數集合,設計一個演算法求他們的交集,儘可能的高效。
百度
科大訊飛
1.求一個整數陣列的最大元素,用遞迴方法實現。
2. 已知一個整數陣列A[n],寫出演算法實現將奇數元素放在陣列的左邊,將偶數放在陣列的右邊。要求時間複雜度為O(n)。#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; }
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:十七
美團網
去哪兒網
華為
暴風影音
阿里巴巴
人人網
創新工場
優酷
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、寫出你熟悉的排序演算法,並說明其優缺點