我本來發(fā)文的目的是說下筆試題,想想還是不說了,想知道的可以私下跟我討論,題目不難,全做對也不容易,不過錯個兩三道基本也就kaka了。考察得很全面,算法+數(shù)據(jù)結(jié)構(gòu)+操作系統(tǒng)+編譯原理+網(wǎng)絡(luò)+離散數(shù)學(xué),還居然考了個中斷。
筆試之前的宣講會,略有收獲。獲知Google全球共有員工12000左右,其中總部8000左右,而google中國,北京195,上海45,臺北35,而在一年前這一數(shù)字分別是北京100,上海20(這個沒記準(zhǔn)確),臺北10。我得到的唯一結(jié)論:google中國還差的遠(yuǎn)啊,不知道開復(fù)能把它做成什么樣子,應(yīng)該不會撤攤子吧。
這是第二次筆試,作個記錄,以備日后參考,題目另行記錄。
1、 兩個二進制數(shù)的異或結(jié)果
2、 遞歸函數(shù)最終會結(jié)束,那么這個函數(shù)一定(不定項選擇):
1. 使用了局部變量
2. 有一個分支不調(diào)用自身
3. 使用了全局變量或者使用了一個或多個參數(shù)
3、以下函數(shù)的結(jié)果?
int cal(int x)
{
if(x==0)
return 0;
else
return x+cal(x-1);
}
4、 以下程序的結(jié)果?
void foo(int*a, int* b)
{
*a = *a+*b;
*b = *a-*b;
*a = *a-*b;
}
void main()
{
int a=1, b=2, c=3;
foo(&a,&b);
foo(&b,&c);
foo(&c,&a);
printf("%d, %d, %d", a,b,c);
}
5、下面哪項不是鏈表優(yōu)于數(shù)組的特點?
1. 方便刪除 2. 方便插入 3. 長度可變 4. 存儲空間小
6、T(n) = 25T(n/5)+n^2的時間復(fù)雜度?
7、n個頂點,m條邊的全連通圖,至少去掉幾條邊才能構(gòu)成一棵樹?
8、正則表達式(01|10|1001|0110)*與下列哪個表達式一樣?
1.(0|1)* 2.(01|01)* 3.(01|10)* 4.(11|01)* 5.(01|1)*
9、如何減少換頁錯誤?
1. 進程傾向于占用CPU
2. 訪問局部性(locality of reference)滿足進程要求
3. 進程傾向于占用I/O
4.使用基于最短剩余時間(shortest remaining time)的調(diào)度機制
5. 減少頁大小
10、實現(xiàn)兩個N*N矩陣的乘法,矩陣由一維數(shù)組表示
11、找到單向鏈表中間那個元素,如果有兩個則取前面一個
12、長度為n的整數(shù)數(shù)組,找出其中任意(n-1)個乘積最大的那一組,只能用乘法,不可以用除法。要求對算法的時間復(fù)雜度和空間復(fù)雜度作出分析,不要求寫程序。