日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

百度2014校园招聘笔试面试汇总

發(fā)布時(shí)間:2024/1/1 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 百度2014校园招聘笔试面试汇总 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目 錄

1. 百度筆試 2

1.1百度2014校園招聘筆試題(成都站,軟件研發(fā)崗) 2

1.2 ?2013百度校園招聘-機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘工程師-筆試題 7

1.3 ?百度2014校園招聘 技術(shù)研發(fā)題目 8

1.4 ?百度2013校招北京站筆試題 9

1.5 ?2013百度校招杭州站筆試題-軟開與開發(fā)測(cè)試 11

1.6 ?百度開發(fā)類歷年筆試題目集合及解答 12

2. 百度面試 62

2.1 ?2013年9月26日,百度技術(shù)類一二面 62

2.2 ?百度軟件開發(fā)工程師一面問題 62

2.3 ?百度Android兩輪面試經(jīng)驗(yàn) 63



1. 百度筆試

1.1百度2014校園招聘筆試題(成都站,軟件研發(fā)崗)

日期:2013.09.21

地點(diǎn):成都

崗位:軟件研發(fā)

一、簡(jiǎn)答題(本題共30分)

1. 當(dāng)前計(jì)算機(jī)系統(tǒng)一般會(huì)采用層次結(jié)構(gòu)來存儲(chǔ)數(shù)據(jù),請(qǐng)介紹下典型的計(jì)算機(jī)存儲(chǔ)系統(tǒng)一般分為哪幾個(gè)層次,為什么采用分層存儲(chǔ)數(shù)據(jù)能有效提高程序的執(zhí)行效率?(10分)

?

2. Unix/Linux系統(tǒng)中僵尸進(jìn)程是如何產(chǎn)生的?有什么危害?如何避免?(10分)

?

3. 簡(jiǎn)述Unix/Linux系統(tǒng)中使用socket庫編寫服務(wù)器端程序的流程,請(qǐng)分別用對(duì)應(yīng)的socket通信函數(shù)表示(10分)

?

二、算法與程序設(shè)計(jì)題(本題共45分)


?


1. 使用C/C++編寫函數(shù),實(shí)現(xiàn)字符串反轉(zhuǎn),要求不使用任何系統(tǒng)函數(shù),且時(shí)間復(fù)雜度最小,函數(shù)原型:char* reverse_str(char* str)。(15分)

?

2. 給定一個(gè)如下格式的字符串,(1,(2,3),(4,(5,6),7))括號(hào)內(nèi)的元素可以是數(shù)字,也可以是另一個(gè)括號(hào),請(qǐng)實(shí)現(xiàn)一個(gè)算法消除嵌套的括號(hào),比如把上面的表達(dá)式變成:(1,2,3,4,5,6,7),如果表達(dá)式有誤請(qǐng)報(bào)錯(cuò)。(15分)

?

3. (見下圖)

?

?

三、系統(tǒng)設(shè)計(jì)題(本題共25分)

在企業(yè)中,對(duì)生產(chǎn)數(shù)據(jù)進(jìn)行分析具有很重要的意義,但是生產(chǎn)數(shù)據(jù)通常不能直接用于數(shù)據(jù)分析,通常需要進(jìn)行抽取、轉(zhuǎn)換和加載,也就是通常說的ETL。

?

為了便于開發(fā)和維護(hù),并提高數(shù)據(jù)實(shí)時(shí)性,通常將一個(gè)完整的ETL過程分為多個(gè)任務(wù),組成流水線,如下圖所示:

?


?


?

假設(shè)任務(wù)定義和任務(wù)之間的依賴關(guān)系都保存在文件中,文件格式分別如下:

?

?

問題:

1. 下面是ETL調(diào)度系統(tǒng)的模塊圖,請(qǐng)描述各個(gè)模塊呃主要職責(zé),以及各個(gè)線條的 含義。(10分)




?


2. ?添加依賴關(guān)系時(shí)要避免出現(xiàn)環(huán),假設(shè)系統(tǒng)同一個(gè)時(shí)刻只允許一個(gè)人添加任務(wù)依賴,請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù)來檢查新的依賴是否導(dǎo)致環(huán),依賴的上游存在環(huán)會(huì)導(dǎo)致非正常的調(diào)度,因此也希望能避免。(10分)

a) ?函數(shù)名:checkCycle

b) ?輸入:pairs,已存在的依賴關(guān)系((pre,post)……), newPair新的依賴關(guān)系(pre,post)

c) ?輸出:True: 不存在環(huán),False: 存在環(huán)

?

3. 如果調(diào)度時(shí),某個(gè)任務(wù)在其依賴的任務(wù)之前執(zhí)行,必然導(dǎo)致錯(cuò)誤,請(qǐng)實(shí)現(xiàn)調(diào)度算法,確保任務(wù)按照依賴順序執(zhí)行?(10分)

a) ?函數(shù)名:schedule

b) ?輸入1:tasks,整數(shù)數(shù)組;

c) ?輸入2:task-relation,二元組數(shù)組,每個(gè)二元組表示一組關(guān)系;

d) ?輸出:task id序列,并行執(zhí)行的用","分隔,其他的用";"分隔;

?

4. 給定一個(gè)任務(wù),如何計(jì)算出他的最晚完成時(shí)間?(10分)

a) ?函數(shù)名:calMaxEndTime

b) ?輸入1:tasks,3元組數(shù)組,(task_id, start_time, max_run_time);

?


c) ?輸入2:task-relations,二元組數(shù)組,每個(gè)二元組表示一組關(guān)系;

d) ?輸入3:task-id

e) ?輸出:最晚完成時(shí)間;


1.2 ?2013百度校園招聘-機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘工程師-筆試題

一、簡(jiǎn)答題(30分)

1、簡(jiǎn)述數(shù)據(jù)庫操作的步驟(10分)

2、TCP/IP的四層結(jié)構(gòu)(10分)

3、什么是MVC結(jié)構(gòu),簡(jiǎn)要介紹各層結(jié)構(gòu)的作用(10分)

二、算法與程序設(shè)計(jì)(45分)

1、由a-z、0-9組成3位的字符密碼,設(shè)計(jì)一個(gè)算法,列出并打印所有可能的密碼組合(可用偽代碼、C、C++、Java實(shí)現(xiàn))(15分)

2、實(shí)現(xiàn)字符串反轉(zhuǎn)函數(shù)(15分)

3、百度鳳巢系統(tǒng),廣告客戶購買一系列關(guān)鍵詞,數(shù)據(jù)結(jié)構(gòu)如下:(15分)

User1 手機(jī) 智能手機(jī) iphone 臺(tái)式機(jī) …

User2 手機(jī) iphone 筆記本電腦 三星手機(jī) …

User3 htc 平板電腦 手機(jī) …

(1)根據(jù)以上數(shù)據(jù)結(jié)構(gòu)對(duì)關(guān)鍵詞進(jìn)行KMeans聚類,請(qǐng)列出關(guān)鍵詞?


的向量表示、距離公式和KMeans算法的整體步驟

(2)計(jì)算給定關(guān)鍵詞與客戶關(guān)鍵詞的文字相關(guān)性,請(qǐng)列出關(guān)鍵詞與客戶的表達(dá)符號(hào)和計(jì)算公式

三、系統(tǒng)設(shè)計(jì)題(25分)

一維數(shù)據(jù)的擬合,給定數(shù)據(jù)集{xi,yi}(i=1,…,n),xi是訓(xùn)練數(shù)據(jù),yi是對(duì)應(yīng)的預(yù)期值。擬使用線性、二次、高次等函數(shù)進(jìn)行擬合

線性:f(x)=ax+b

二次:f(x)=ax^2+bx+c

三次:f(x)=ax^3+bx^2+cx+d

(1)請(qǐng)依次列出線性、二次、三次擬合的誤差函數(shù)表達(dá)式(2分)

(2)按照梯度下降法進(jìn)行擬合,請(qǐng)給出具體的推導(dǎo)過程。(7分)

(3)下圖給出了線性、二次和七次擬合的效果圖。請(qǐng)說明進(jìn)行數(shù)據(jù)擬合時(shí),需要考慮哪些問題。在本例中,你選擇哪種擬合函數(shù)。(8分)

(4)給出實(shí)驗(yàn)方案(8分)

1.3 ?百度2014校園招聘 技術(shù)研發(fā)題目

樓主非985,非211,二本專業(yè)一枚,有幸獲得度娘的照顧,有個(gè)筆試機(jī)會(huì),當(dāng)然抱著重在參與的心態(tài),把所有題目copy回來了。說來慚愧,做的不好,給需要的同學(xué)參考參考吧。

一、簡(jiǎn)答題

?


1.靜態(tài)鏈接庫和動(dòng)態(tài)鏈接庫的優(yōu)缺點(diǎn)。

2.輪詢式任務(wù)調(diào)度和搶占式任務(wù)調(diào)度的區(qū)別

3.數(shù)據(jù)庫中有哪些鎖,敘述其應(yīng)用場(chǎng)合。

二、算法與程序設(shè)計(jì)

1.給定任意一正整數(shù),求大于它的最小非“重復(fù)數(shù)”。所謂“重復(fù)數(shù)”是指一個(gè)數(shù)中相鄰的位相同的狀況,例如“1123”是重復(fù)數(shù),“1231”則不是。

2.有一個(gè)長(zhǎng)度為N(N很大)的字符串,求其最大回文字符串。(好像是回文。。)

3.在數(shù)軸上有a[0],a[1],a[2],.....,a[n-1]個(gè)點(diǎn),有一根長(zhǎng)度為L(zhǎng) 的尺子,最多能覆蓋多少個(gè)點(diǎn)?

三、系統(tǒng)設(shè)計(jì)(題目太長(zhǎng),大意如下)

設(shè)計(jì)一個(gè)分布式緩存系統(tǒng),滿足一下三個(gè)條件:

1.單個(gè)緩存服務(wù)器故障無法工作,服務(wù)器集群可正常工作。

2.充分利用每一個(gè)服務(wù)器容量,按照比例,均衡負(fù)載。

3.如果某一服務(wù)器故障,保證遷移的緩存文件數(shù)據(jù)量最小。

1.4 ?百度2013校招北京站筆試題

一、簡(jiǎn)答題(30分)?

1、用簡(jiǎn)單語句描述數(shù)據(jù)庫操作的步驟?

2、寫出TCP/IP的四層結(jié)構(gòu)?

?


3、什么是MVC結(jié)構(gòu),并描述各層結(jié)構(gòu)的作用?

二、算法與程序設(shè)計(jì)題(40分)?

1、字母a-z,數(shù)字0-9,現(xiàn)需要其中任意3個(gè)作為密碼,請(qǐng)輸出所有可能組合。(偽碼\C\C++\JAVA)(10分)?

2、實(shí)現(xiàn)字符串反轉(zhuǎn)函數(shù)(10分)?

3、給定字符函數(shù)a、插入 b、刪除 c、替換?

例如字符串A=acegf,字符串B=adef,最少需要2步操作將A轉(zhuǎn)換為B,

即第一步將c替換為d,第二步將g刪除;?

(1)請(qǐng)問將字符串A=gumbo轉(zhuǎn)換為字符串B=gambol,最少需要幾步操作,列出如何操作(2分)?

(2)任意字符串A和字符串B,如何計(jì)算最小操作次數(shù),計(jì)算思路,并給出遞歸公式(3分)?

(3)實(shí)現(xiàn)代碼(注意代碼風(fēng)格與效率)(15分)?

點(diǎn)評(píng):請(qǐng)參看上文第38題第4小題:9月26日,百度一二面試題。

三、系統(tǒng)設(shè)計(jì)題(30分)

RSA SecurID安全系統(tǒng)?

應(yīng)用場(chǎng)景:這是一種用戶登錄驗(yàn)證手段,例如銀行登錄系統(tǒng),這個(gè)設(shè)備顯示6位數(shù)字,每60秒變一次,再經(jīng)過服務(wù)器認(rèn)證,通過則允許登錄。問How to design this system??

?


1)系統(tǒng)設(shè)計(jì)思路?服務(wù)器端為何能有效認(rèn)證動(dòng)態(tài)密碼的正確性??

2)如果是千萬量級(jí)永固,給出系統(tǒng)設(shè)計(jì)圖示或說明,要求子功能模塊劃分清晰,給出關(guān)鍵的數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫表結(jié)構(gòu)。?

考慮用戶量級(jí)的影響和擴(kuò)展性,用戶密碼的隨機(jī)性等,如果設(shè)計(jì)系統(tǒng)以支持這幾個(gè)因素.?

3)系統(tǒng)算法升級(jí)時(shí),服務(wù)器端和設(shè)備端可能都要有所修改,如何設(shè)計(jì)系統(tǒng),能夠使得升級(jí)過程(包括可能的設(shè)備替換或重設(shè))盡量平滑?


1.5 ?2013百度校招杭州站筆試題-軟開與開發(fā)測(cè)試

10月20日 上午9:00-11:00 ?浙大 百度軟件開發(fā)和開發(fā)測(cè)試的筆試題(軟件開發(fā)和開發(fā)測(cè)試的筆試題監(jiān)考官說是一樣的)

每個(gè)地方的考題都不一樣,突擊了一下也沒碰見原題這種好事,練練手吧。

一、簡(jiǎn)答題

1. 哈希算法有哪些種,舉例說明。

2. OSI 七層結(jié)構(gòu)分別是什么 ,http協(xié)議在哪一層。

3. 一個(gè)C程序是如何運(yùn)行的。

二、程序設(shè)計(jì)題

1. 一個(gè)農(nóng)夫拉了一車蘋果,現(xiàn)在把這些蘋果裝成小袋,每三個(gè)一袋最后剩下兩個(gè),每5個(gè)一袋剩下了3個(gè),每7個(gè)一袋剩下了(忘了幾?


個(gè))個(gè),問:請(qǐng)列出N種蘋果的總數(shù)量。

2. 用遞歸算法計(jì)算一個(gè)字符串中最大的連續(xù)字符個(gè)數(shù)。比如aaabbcc 輸出3,aabbcc 輸出2,abc輸出1

3. 一個(gè)輸入法,從鍵盤上敲擊字幕輸入,會(huì)顯示所有待選詞,第一個(gè)待選詞是用戶行為學(xué)習(xí)詞匯(高頻詞),第二個(gè)是云計(jì)算所得詞匯,每行顯示5個(gè)待選詞,可翻頁,請(qǐng)?jiān)O(shè)計(jì)測(cè)試用例。

三、系統(tǒng)設(shè)計(jì)題

百度所存儲(chǔ)的網(wǎng)頁上有1kw個(gè)安卓.apk安裝軟件,其中只有10w個(gè)是有效的。請(qǐng)?jiān)O(shè)計(jì)算法(不需要具體代碼實(shí)現(xiàn))抓取這10w個(gè)apk。注意要有排除相同的url,排除相同的apk,排除惡性apk。


1.6 ?百度開發(fā)類歷年筆試題目集合及解答

①現(xiàn)在有1千萬個(gè)隨機(jī)數(shù),隨機(jī)數(shù)的范圍在1到1億之間。現(xiàn)在要求寫出一種算法,將1到1億之間沒有在隨機(jī)數(shù)中的數(shù)求出來。?

解決辦法:

一)用一個(gè)32位的整數(shù)32位表示32個(gè)數(shù),1億/32 = 3125000,使用3.125 * 4M byte空間即可保存1億個(gè)數(shù),即index[3125000].

二)對(duì)于數(shù)n,(n-1) / 32 為其在數(shù)組中的下標(biāo),table[(n - 1) % 32]與數(shù)組中下標(biāo)(n-1)/32的值使用或操作。

三)表table中值為 table[ 0 ]=0x00000001,

?


table[ 1 ]=0x00000002,

... ...

table[29]=0x20000000,

table[31]=0x80000000, 等這樣的表示方式,具體的數(shù)值使用查表法加快速度。


四)最后算某值是否存在,使用與操作即可計(jì)算出。


數(shù)據(jù)存取比如:

第一個(gè)N=30是一個(gè)隨機(jī)數(shù),則存儲(chǔ)可以表示為:index[(30-1)/32] = index[0] = index[0] || table[(30-1)%32]?

注: /*剛開始時(shí)候初始化index[32]={0}*/

= 0 || 0x20000000 = 0x20000000;

第二個(gè)N=31是一個(gè)隨機(jī)數(shù),則存儲(chǔ)可以表示為:index[(31-1)/32] = index[0] = index[0] || table[(31-1)%32]?

注:/*第30位1,其他位為0*/

= 0x20000000 || 0x40000000 = 0x60000000;

... ...

依次類推,即可。?

?


數(shù)據(jù)驗(yàn)證比如:

1. 當(dāng)要查詢30是否存在的時(shí)候,由于:(30-1)/32 = 0;(30-1)%32=29;我們只需要計(jì)算:index[0] & table[29] 是真還是假,就可以得出30是否存在。

2. 當(dāng)要查詢31是否存在的時(shí)候,由于:(31-1)/32 = 0;(31-1)%32=30;我們只需要計(jì)算:index[0] & table[30] 是真還是假,就可以得出31是否存在。

... ...

依次類推,即可。?

小結(jié):

通過分析此題目,首先這種思路和方法,在一定程度上用相對(duì)小的空間存儲(chǔ)了大量的數(shù)據(jù),節(jié)省了比較大的內(nèi)



存空間;在運(yùn)算方面,位運(yùn)算的速度相當(dāng)來說效率是比較高的,因而也再一定程度上節(jié)省了時(shí)間復(fù)雜。


總之,這種存儲(chǔ)方式和思維方式,在一定方面能夠有效的解決海量數(shù)據(jù)存儲(chǔ)與運(yùn)算。基于此題目,凡是大量數(shù)據(jù)篩選,判斷是否存在等問題,我們都可以借鑒此題目的思維和方法。

?



② 如下,其中每個(gè)單元格的長(zhǎng)寬均為1。任意給定長(zhǎng)x,寬為y的如下形狀,設(shè)計(jì)算法找出總共有多少個(gè)長(zhǎng)方形(不計(jì)正方形個(gè)數(shù))?(百度面試)

? ?

? ?

? ?

[cpp] view plaincopy

1. //算法實(shí)現(xiàn)

2. #include <stdio.h>

3.

4. int FindTotalNumOfRectangle(const unsigned int x, const unsigned int y)

5. {

6. unsigned int i, j, sum = 0;

7.

8. for(i = 1; i <= x; ++ i)

9. {

10. for(j = 1; j <= y; ++ j)

11. {

12. if(i != j)

13. {

14. sum += (x - i + 1) * (y - j + 1);

15. }

16. }

17. }

18. return sum;

19. }

20.

21. int main()

22. {

23. printf("%d\n",FindTotalNumOfRectangle(2, 3));

24.

25. return 0;

26. }

[cpp] view plaincopy

1. //算法實(shí)現(xiàn) ?

2. #include <stdio.h> ?

3. ?

4. int FindTotalNumOfRectangle(const unsigned int x, const unsigned int y) ?

5. { ?

6. ? ?unsigned int i, j, sum = 0; ?

7. ? ? ?

8. ? ?for(i = 1; i <= x; ++ i) ?

9. ? ?{ ?

10. ? ? ? ?for(j = 1; j <= y; ++ j) ?

11. ? ? ? ?{ ?

12. ? ? ? ? ? ?if(i != j) ?

13. ? ? ? ? ? ?{ ?

14. ? ? ? ? ? ? ? ?sum += (x - i + 1) * (y - j + 1); ?

15. ? ? ? ? ? ?} ?

16. ? ? ? ?} ?

17. ? ?} ?

18. ? ?return sum; ?

19. } ?

20. ?

21. int main() ?

22. { ?

23. ? ?printf("%d\n",FindTotalNumOfRectangle(2, 3)); ?

24. ?

25. ? ?return 0; ?

26. } ?


③ 十進(jìn)制轉(zhuǎn)換為N進(jìn)制(百度面試)

[cpp] view plaincopy

1. char *simple_itoa(unsigned int i)

2. {

3. /* 21 digits plus null terminator, good for 64-bit or smaller ints

4. * for bigger ints, use a bigger buffer!

5. *

6. * 4294967295 is, incidentally, MAX_UINT (on 32bit systems at this time)

7. * and is 10 bytes long

8. */

9. static char local[22];

10. char *p = &local[21];

11. *p = '\0';

12. do {

13. *--p = '0' + i % 10;

14. i /= 10;

15. } while (i != 0);

16. return p;

17. }

[cpp] view plaincopy

1. char *simple_itoa(unsigned int i) ?

2. { ?

3. ? ?/* 21 digits plus null terminator, good for 64-bit or smaller ints?

4. ? ? * for bigger ints, use a bigger buffer!?

5. ? ? *?

6. ? ? * 4294967295 is, incidentally, MAX_UINT (on 32bit systems at this time)?

7. ? ? * and is 10 bytes long?

8. ? ? */ ?

9. ? ?static char local[22]; ?

10. ? ?char *p = &local[21]; ?

11. ? ?*p = '\0'; ?

12. ? ?do { ?

13. ? ? ? ?*--p = '0' + i % 10; ?

14. ? ? ? ?i /= 10; ?

15. ? ?} while (i != 0); ?

16. ? ?return p; ?

17. } ?


[cpp] view plaincopy

1. #include <stdio.h>

2. #include <string.h>

3.

4. void ReverseString(char *pString)

5. {

6. if(NULL == pString)

7. return ;

8.

9. char *pBegin = pString;

10. char *pEnd = pString + strlen(pString) - 1;

11.

12. while(pBegin < pEnd)

13. {

14. char temp = *pBegin;

15. *pBegin = *pEnd;

16. *pEnd = temp;

17.

18. ++ pBegin;

19. -- pEnd;

20. }

21. }

22.

23. char * FromTenToN (const int num, const unsigned int N)

24. {

25. if(NULL == num || N < 2 || N > 16)

26. return NULL;

27.

28. char *result = new char[];

29.

30. int tmpNum = num;

31. unsigned int nCount = 0;

32.

33. while(tmpNum)

34. {

35. int tmp = tmpNum % N ;

36.

37. if(tmp >= 10)

38. tmp = 'A' + (tmp - 10) - '0';

39.

40. result[ nCount ++] = tmp + '0';

41.

42. tmpNum /= N;

43. }

44. result[ nCount ] = '\0';

45.

46. ReverseString(result);

47.

48. return result;

49. }

50.

51. int main()

52. {

53. printf("the Result is :%s\n",FromTenToN(166, 16));

54.

55. }

[cpp] view plaincopy

1. #include <stdio.h> ?

2. #include <string.h> ?

3. ?

4. void ReverseString(char *pString) ?

5. { ?

6. ? ?if(NULL == pString) ?

7. ? ? ? ?return ; ?

8. ?

9. ? ?char *pBegin = pString; ?

10. ? ?char *pEnd ? = pString + strlen(pString) - 1; ?

11. ?

12. ? ?while(pBegin < pEnd) ?

13. ? ?{ ?

14. ? ? ? ?char temp = *pBegin; ?

15. ? ? ? ?*pBegin = *pEnd; ?

16. ? ? ? ?*pEnd ? = temp; ?

17. ?

18. ? ? ? ?++ pBegin; ?

19. ? ? ? ?-- pEnd; ?

20. ? ?} ?

21. } ?

22. ?

23. char * FromTenToN (const int num, const unsigned int N) ?

24. { ?

25. ? ?if(NULL == num || N < 2 || N > 16) ?

26. ? ? ? ?return NULL; ?

27. ?

28. ? ?char *result = new char[]; ?

29. ?

30. ? ?int tmpNum = num; ?

31. ? ?unsigned int nCount = 0; ?

32. ?

33. ? ?while(tmpNum) ?

34. ? ?{ ?

35. ? ? ? ?int tmp = tmpNum % N ; ?

36. ?

37. ? ? ? ?if(tmp >= 10) ? ? ?

38. ? ? ? ? ? ?tmp = 'A' + (tmp - 10) - '0'; ?

39. ?

40. ? ? ? ?result[ nCount ++] = tmp + '0'; ? ? ??

41. ?

42. ? ? ? ?tmpNum /= N; ?

43. ? ?} ?

44. ? ?result[ nCount ] = '\0'; ?

45. ?

46. ? ?ReverseString(result); ?

47. ?

48. ? ?return result; ?

49. } ?

50. ?

51. int main() ?

52. { ?

53. ? ?printf("the Result is :%s\n",FromTenToN(166, 16)); ?

54. ?

55. } ?


④ 快速排序算法(百度面試)

[cpp] view plaincopy

1. #include <stdio.h>

2.

3. int Partition(int *iArray, int i, int j)

4. {

5. int pivot = iArray[ i ];

6.

7. while(i < j)

8. {

9. while(i < j && iArray[ j ] >= pivot )

10. {

11. j --;

12. }

13.

14. if(i < j)

15. {

16. iArray[ i ++ ] = iArray[ j ];

17. }

18.

19. while(i < j && iArray[ i ] <= pivot)

20. {

21. i ++;

22. }

23.

24. if(i < j)

25. {

26. iArray[ j -- ] = iArray[ i ];

27. }

28. }

29.

30. iArray[ i ] = pivot;

31.

32. return i;

33. }

34.

35. void QuickSort(int *iArray, int low, int high)

36. {

37. if(low < high)

38. {

39. int pivotpos = Partition(iArray, low, high);

40.

41. QuickSort(iArray, low, pivotpos - 1);

42.

43. QuickSort(iArray, pivotpos + 1, high);

44. }

45.

46. }

47. int main()

48. {

49. int iArray[] = {1,0,9,3,7,2,-90,78,45,4,77,79,78,37,0,-1,2,3,6,9,5,4,78,78,78,1,1,1};

50.

51. int len = sizeof(iArray) / sizeof(int);

52.

53. QuickSort(iArray, 0, len - 1);

54.

55. for(int i = 0; i < len; ++ i)

56. {

57. printf("%3d ",iArray[ i ]);

58. }

59.

60. printf("\n");

61. }

[cpp] view plaincopy

1. #include <stdio.h> ?

2. ?

3. int ?Partition(int *iArray, int i, int j) ?

4. { ?

5. ? ?int pivot = iArray[ i ]; ?

6. ?

7. ? ?while(i < j) ?

8. ? ?{ ?

9. ? ? ? ?while(i < j && iArray[ j ] >= pivot ) ?

10. ? ? ? ?{ ?

11. ? ? ? ? ? ?j --; ?

12. ? ? ? ?} ?

13. ?

14. ? ? ? ?if(i < j) ?

15. ? ? ? ?{ ?

16. ? ? ? ? ? ?iArray[ i ++ ] = iArray[ j ]; ?

17. ? ? ? ?} ?

18. ?

19. ? ? ? ?while(i < j && iArray[ i ] <= pivot) ?

20. ? ? ? ?{ ?

21. ? ? ? ? ? ?i ++; ?

22. ? ? ? ?} ?

23. ?

24. ? ? ? ?if(i < j) ?

25. ? ? ? ?{ ?

26. ? ? ? ? ? ?iArray[ j -- ] = iArray[ i ]; ?

27. ? ? ? ?} ?

28. ? ?} ?

29. ?

30. ? ?iArray[ i ] = pivot; ?

31. ?

32. ? ?return i; ?

33. } ?

34. ?

35. void QuickSort(int *iArray, int low, int high) ?

36. { ?

37. ? ?if(low < high) ?

38. ? ?{ ?

39. ? ? ? ?int pivotpos = Partition(iArray, low, high); ?

40. ?

41. ? ? ? ?QuickSort(iArray, low, pivotpos - 1); ?

42. ?

43. ? ? ? ?QuickSort(iArray, pivotpos + 1, high); ?

44. ? ?} ?

45. ?

46. } ?

47. int main() ?

48. { ?

49. ? ?int iArray[] = {1,0,9,3,7,2,-90,78,45,4,77,79,78,37,0,-1,2,3,6,9,5,4,78,78,78,1,1,1}; ?

50. ?

51. ? ?int len = sizeof(iArray) / sizeof(int); ?

52. ?

53. ? ?QuickSort(iArray, 0, len - 1); ?

54. ?

55. ? ?for(int i = 0; i < len; ++ i) ?

56. ? ?{ ?

57. ? ? ? ?printf("%3d ",iArray[ i ]); ?

58. ? ?} ?

59. ?

60. ? ?printf("\n"); ?

61. } ?



⑥查找兄弟字符串(百度筆試)

[cpp] view plaincopy

1. //judge two string is brother string or not

2. bool IsBrotherString(const char *src,const char *dst)

3. {

4. if( strlen(src) != strlen(dst) )

5. return false;

6.

7. //usually we only have 256 chars

8. unsigned int hashTable[256];

9. memset(hashTable,0,sizeof(hashTable));

10.

11. //compute the num of every char in the src

12. const char *pSrc = src;

13. while(*pSrc != '\0')

14. {

15. ++ hashTable[*pSrc ++];

16. }

17.

18. //minus the num of every char in the dst

19. const char *pDest = dst;

20. while(*pDest != '\0')

21. {

22. -- hashTable[*pDest ++];

23. }

24.

25. //at last,if all the num in hashTable is zero, it is brother string.

26. pSrc = src;

27. while(*pSrc != '\0')

28. {

29. if(hashTable[*pSrc ++] != 0)

30. {

31. return false;

32. }

33. }

34. return true;

35. }

[cpp] view plaincopy

1. //judge two string is brother string or not ?

2. bool IsBrotherString(const char *src,const char *dst) ?

3. { ?

4. ? ?if( strlen(src) != strlen(dst) ) ?

5. ? ? ? ?return false; ?

6. ? ? ?

7. ? ?//usually we only have 256 chars ?

8. ? ?unsigned int hashTable[256]; ?

9. ? ?memset(hashTable,0,sizeof(hashTable)); ?

10. ?

11. ? ?//compute the num of every char in the src ?

12. ? ?const char *pSrc = src; ?

13. ? ?while(*pSrc != '\0') ?

14. ? ?{ ?

15. ? ? ? ?++ hashTable[*pSrc ++]; ?

16. ? ?} ?

17. ?

18. ? ?//minus the num of every char in the dst ?

19. ? ?const char *pDest = dst; ?

20. ? ?while(*pDest != '\0') ?

21. ? ?{ ?

22. ? ? ? ?-- hashTable[*pDest ++]; ?

23. ? ?} ?

24. ?

25. ? ?//at last,if all the num in hashTable is zero, it is brother string. ?

26. ? ?pSrc = src; ?

27. ? ?while(*pSrc != '\0') ?

28. ? ?{ ?

29. ? ? ? ?if(hashTable[*pSrc ++] != 0) ?

30. ? ? ? ?{ ?

31. ? ? ? ? ? ?return false; ?

32. ? ? ? ?} ?

33. ? ?} ? ??

34. ? ?return true; ?

35. } ?


⑦×××數(shù)組的整合。例如已知數(shù)組a前半部分a[0,mid - 1],后半部分a[mid,num-1],現(xiàn)前半部分和后半部分均已排好序。要求:實(shí)現(xiàn)a數(shù)組的從小到大排序。空間復(fù)雜度為O(1).(百度筆試)

[cpp] view plaincopy

1. #include <stdio.h>

2.

3. void MergeIntData(int *a, const unsigned int num, const unsigned int mid)

4. {

5. if(mid < 0 || num < 0 || NULL == a || a[mid - 1] <= a[ mid ])

6. return;

7.

8. unsigned int i,temp, low = 0, high = 0;

9.

10. if(mid <= num / 2)

11. {

12. while(low < mid)

13. {

14. while(a[low] < a[mid + high])//不能加等號(hào),否則如果有連續(xù)相等在一起的數(shù)據(jù),會(huì)出現(xiàn)

15.

16. 錯(cuò)誤

17. {

18. ++ low;

19. }

20.

21. while(a[mid + high + 1] < a[low])

22. {

23. ++ high;

24.

25. if(high >= num - mid)

26. {

27. high = num - mid - 1;

28. break;

29. }

30. }

31.

32. temp = a[low];

33. for(i = low; i < mid + high; ++ i)

34. {

35. a[i] = a[i + 1];

36. }

37. a[mid + high] = temp;

38. }

39. }

40. else

41. {

42. while(high < num - mid)

43. {

44. while(a[low] < a[mid + high])

45. {

46. ++ low;

47. }

48.

49. temp = a[mid + high];

50. for(i = mid + high; i > low; -- i)

51. {

52. a[i] = a[i - 1];

53. }

54. a[low] = temp;

55.

56. ++ high;

57. }

58. }

59. }

60.

61.

62. int main()

63. {

64.

65. // int a[] = {0,2,4,6,8,9,10,11,12,14,16,18,1,3,5,7};

66. // int a[] = {0,2,4,6,8,8,9,9,1000,1,3,5,7,10,11,12,14,16,18,20,21,23,25,45,68};

67. // int a[] = {100,1,3,5,7,10,11,12,14,16,18,20,21,23,25,45,68};

68. // int a[] = {8,8,8,9,9,1,5,8,9,10,12,13,14};

69. // int a[] = {1,2,3,4,5,6,7,8,9,2,4,5,7,8,9,10};

70. // int a[] = {0,1,2,3,4,5,6,7,8,9,9,17,100,5,5,5,5,9,10,10000};

71.

72. int a[] = {1,2,3,4,5,6,7,100,1000,2,3,5,6,8,1001};

73. int len = sizeof(a) / sizeof(int);

74. int mid = 9;

75. MergeIntData(a, len, mid);

76.

77. for(int i = 0; i < len; ++ i)

78. {

79. printf("%d ", a[i]);

80. }

81.

82. printf("\n");

83. return 0;

84. }

[cpp] view plaincopy

1. #include <stdio.h> ?

2. ?

3. void MergeIntData(int *a, const unsigned int num, const unsigned int mid) ?

4. { ?

5. ? ?if(mid < 0 || num < 0 || NULL == a || a[mid - 1] <= a[ mid ]) ?

6. ? ? ? ?return; ?

7. ?

8. ? ?unsigned int i,temp, low = 0, high = 0; ?

9. ? ? ?

10. ? ?if(mid <= num / 2) ?

11. ? ?{ ?

12. ? ? ? ?while(low < mid) ?

13. ? ? ? ?{ ? ??

14. ? ? ? ? ? ?while(a[low] < a[mid + high])//不能加等號(hào),否則如果有連續(xù)相等在一起的數(shù)據(jù),會(huì)出現(xiàn) ?

15. ?

16. 錯(cuò)誤 ?

17. ? ? ? ? ? ?{ ?

18. ? ? ? ? ? ? ? ?++ low; ? ? ? ? ? ? ??

19. ? ? ? ? ? ?} ? ? ? ? ? ??

20. ?

21. ? ? ? ? ? ?while(a[mid + high + 1] < a[low]) ?

22. ? ? ? ? ? ?{ ?

23. ? ? ? ? ? ? ? ?++ high; ?

24. ?

25. ? ? ? ? ? ? ? ?if(high ?>= num - mid) ?

26. ? ? ? ? ? ? ? ?{ ?

27. ? ? ? ? ? ? ? ? ? ?high = num - mid - 1; ?

28. ? ? ? ? ? ? ? ? ? ?break; ?

29. ? ? ? ? ? ? ? ?} ?

30. ? ? ? ? ? ?} ?

31. ?

32. ? ? ? ? ? ?temp = a[low]; ? ? ? ? ? ?

33. ? ? ? ? ? ?for(i = low; i < mid + high; ++ i) ?

34. ? ? ? ? ? ?{ ?

35. ? ? ? ? ? ? ? ?a[i] = ?a[i + 1]; ?

36. ? ? ? ? ? ?} ?

37. ? ? ? ? ? ?a[mid + high] = temp; ?

38. ? ? ? ?} ? ??

39. ? ?} ?

40. ? ?else ?

41. ? ?{ ?

42. ? ? ? ?while(high < num - mid) ?

43. ? ? ? ?{ ? ??

44. ? ? ? ? ? ?while(a[low] < a[mid + high]) ?

45. ? ? ? ? ? ?{ ?

46. ? ? ? ? ? ? ? ?++ low; ? ? ? ? ? ? ??

47. ? ? ? ? ? ?} ? ? ? ? ? ??

48. ?

49. ? ? ? ? ? ?temp = a[mid + high]; ? ? ? ? ? ??

50. ? ? ? ? ? ?for(i = mid + high; i > low; -- i) ?

51. ? ? ? ? ? ?{ ?

52. ? ? ? ? ? ? ? ?a[i] = ?a[i - 1]; ?

53. ? ? ? ? ? ?} ?

54. ? ? ? ? ? ?a[low] = temp; ?

55. ?

56. ? ? ? ? ? ?++ high; ?

57. ? ? ? ?} ? ??

58. ? ?} ?

59. } ?

60. ?

61. ?

62. int main() ?

63. { ?

64. ?

65. // ?int a[] = {0,2,4,6,8,9,10,11,12,14,16,18,1,3,5,7}; ?

66. // ?int a[] = {0,2,4,6,8,8,9,9,1000,1,3,5,7,10,11,12,14,16,18,20,21,23,25,45,68}; ?

67. // ?int a[] = {100,1,3,5,7,10,11,12,14,16,18,20,21,23,25,45,68}; ?

68. // ?int a[] = {8,8,8,9,9,1,5,8,9,10,12,13,14}; ?

69. // ?int a[] = {1,2,3,4,5,6,7,8,9,2,4,5,7,8,9,10}; ?

70. // ?int a[] = {0,1,2,3,4,5,6,7,8,9,9,17,100,5,5,5,5,9,10,10000}; ?

71. ?

72. ? ?int a[] = {1,2,3,4,5,6,7,100,1000,2,3,5,6,8,1001}; ?

73. ? ?int len = sizeof(a) / sizeof(int); ?

74. ? ?int mid = ?9; ?

75. ? ?MergeIntData(a, len, mid); ?

76. ?

77. ? ?for(int i = 0; i < len; ++ i) ?

78. ? ?{ ?

79. ? ? ? ?printf("%d ?", a[i]); ?

80. ? ?} ?

81. ?

82. ? ?printf("\n"); ?

83. ? ?return 0; ?

84. } ?


2012年校園招聘筆試題目

一 簡(jiǎn)單題

1. 對(duì)遠(yuǎn)程Linux/Unix系統(tǒng)進(jìn)行操作,通常的途徑是采用終端軟件通過SSH登錄遠(yuǎn)程系統(tǒng),進(jìn)行操作。但是在網(wǎng)絡(luò)發(fā)生中



斷時(shí),Linux/Unix端運(yùn)行的程序?qū)?huì)中斷。

請(qǐng)簡(jiǎn)述這種問題發(fā)生的原來,通過何種途徑避免這種問題,以及該途徑可以避免此問題的原理。?

2.一個(gè)最小值堆,同時(shí)是一棵完全二叉樹(只有最下面兩次節(jié)點(diǎn)的子節(jié)點(diǎn)數(shù)可以少于2且最下面一層的節(jié)點(diǎn)都存儲(chǔ)在最



左面),如圖所示

1

/ \

2 6

/ \ / \

4 3 8 7

/ \

5 9

該堆順序存儲(chǔ)在一個(gè)數(shù)組a中,1 2 6 4 3 8 7 5 9

1)對(duì)于任意節(jié)點(diǎn)a[n],其在二叉樹中左,右子節(jié)點(diǎn)訪問方式

2)完成函數(shù),向堆中加入一個(gè)元素后仍然滿足堆的原有性質(zhì)

void add_element(int *a,int size,int val) //a存儲(chǔ)堆是數(shù)組,size是數(shù)組內(nèi)的已有元



素個(gè)數(shù),val是元素的值,數(shù)組內(nèi)大小不需要考慮

3)完成函數(shù),取出堆頂最小元素后仍然滿足堆的原有性質(zhì)?

3 通過某種hash算法,可以讓用戶穩(wěn)定的均勻分布到一個(gè)區(qū)間內(nèi),這個(gè)區(qū)間的大小為100%,分布的最小粒度為:0.1%,我們把這種區(qū)間叫做一層。現(xiàn)在有兩個(gè)區(qū)間A,B,如何讓層A中的任意子區(qū)間都均勻分布到層B的100%中?例如:層A中取10%,這10%會(huì)均勻分布到層B中,即:層B的每一個(gè)10%區(qū)間都會(huì)有1%的區(qū)間A中的10%,也可以說層B的。如果現(xiàn)在有超過10層,每一層之間都需要有這種關(guān)系,又如何解決??

二 算法與程序設(shè)計(jì)

1。不知所云

2 。1)給定一個(gè)序列s=[a1,a2,a3,...,an];構(gòu)造一個(gè)函數(shù),生成序列s的全排列;

示例:

>>>permu([1,2,3])

[[ 1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1] ]?

2)構(gòu)造一個(gè)算法,生成序列s的所有組合;

示例:

>>>comb([1,2,3])

[ [ ],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3] ]

說明:算法均可用偽代碼表示?

三 系統(tǒng)設(shè)計(jì)題 -全排列算法原理和實(shí)現(xiàn)

全排列是將一組數(shù)按一定順序進(jìn)行排列,如果這組數(shù)有n個(gè),那么全排列數(shù)為n!個(gè)。現(xiàn)以{1, 2, 3, 4, 5}為例說明如何編寫全排列的遞歸算法。

1、首先看最后兩個(gè)數(shù)4, 5。 它們的全排列為4 5和5 4, 即以4開頭的5的全排列和以5開頭的4的全排列。由于一個(gè)數(shù)的全排列就是其本身,從而得到以上結(jié)果。

2、再看后三個(gè)數(shù)3, 4, 5。它們的全排列為3 4 5、3 5 4、 4 3 5、 4 5 3、 5 3 4、 5 4 3 六組數(shù)。即以3開頭的和4,5的全排列的組合、以4開頭的和3,5的全排列的組合和以5開頭的和3,4的全排列的組合.從而可以推斷,設(shè)一組數(shù)p = {r1, r2, r3, ... ,rn}, 全排列為perm(p),pn = p - {rn}。因此perm(p) = r1perm(p1), r2perm(p2), r3perm(p3), ... , rnperm(pn)。當(dāng)n = 1時(shí)perm(p} = r1。為了更容易理解,將整組數(shù)中的所有的數(shù)分別與第一個(gè)數(shù)交換,這樣就總是在處理后n-1個(gè)數(shù)的全排列。

?



百度筆試題目

LINUX和C相關(guān)問題:

1. static關(guān)鍵字的作用。為什么static變量只初始化一次?說下進(jìn)程的地址空間(代碼段,數(shù)據(jù)段,堆,棧等)

2.進(jìn)程和線程的區(qū)別?為什么線程的調(diào)度開銷小?

3.說下select機(jī)制

4.為什么需要字節(jié)對(duì)齊?字節(jié)對(duì)齊的規(guī)則?

算法和數(shù)據(jù)結(jié)構(gòu)

(運(yùn)氣比較好,面試官?zèng)]有要求寫出程序,只要能說出算法思路就可以):

1.如何將一個(gè)字符串中的某一個(gè)字符全部刪除,原字符串順序不變?如輸入abcdefbbg,刪除b后得到acdefg,要求時(shí)間復(fù)雜度O(N),空間復(fù)雜度O(1)

2.如果要求對(duì)一個(gè)集合進(jìn)行查詢,插入,刪除,你會(huì)怎么設(shè)計(jì)它的數(shù)據(jù)結(jié)構(gòu)?平衡二叉樹特點(diǎn)?怎么查詢,如果時(shí)間復(fù)雜度要求比O(logn)更小,采用什么?hash的沖突解決方法有哪些?如果要求有序的輸出,是選二叉樹還是hash?怎么輸出?

3.如何在一個(gè)二叉樹中找兩個(gè)節(jié)點(diǎn)的最近祖先節(jié)點(diǎn)?

4.臺(tái)階問題:有n個(gè)臺(tái)階,每次可以踏一個(gè)臺(tái)階,或2個(gè),問有多少種走法?

(PS:我寫出動(dòng)態(tài)規(guī)劃的表達(dá)式后,面試官問這個(gè)對(duì)嗎?我想了半分鐘,覺得有問題,正準(zhǔn)備說應(yīng)該是….,面試官笑著說



哦,別看了,沒問題,倒….)

百度筆試題2005?

題目大致是這樣的:?

  第一部分選擇題:

  有幾道網(wǎng)絡(luò)相關(guān)的題目,巨簡(jiǎn)單,比如第一題是TCP、RIP、IP、FTP中哪個(gè)協(xié)議是傳輸層的......。有一道linux的chown使用題目。其他的全是數(shù)據(jù)結(jié)構(gòu)的題目!什么鏈,表,碼的,不知所云.唉,我可以沒有學(xué)過數(shù)據(jù)結(jié)構(gòu)的人吶!真殘忍!這一部分迅速猜完!

  第二部分簡(jiǎn)答題:

  1、在linux中如何編譯C程序,使之成為可執(zhí)行文件?如何調(diào)試?

答案: 1)檢查程序中.h文件所在的目錄,將其加入系統(tǒng)PATH中;

2)執(zhí)行C編譯:#gcc [源文件名] -o [目標(biāo)文件名]

   執(zhí)行C++編譯:#g++ [源文件名] -o [目標(biāo)文件名]

3)改變目標(biāo)文件為可執(zhí)行文件:#chmod +x [目標(biāo)文件名]

4)如需將多個(gè)可執(zhí)行文件連續(xù)執(zhí)行,可生成批處理文件:

     #vi [批處理文件名]

??


可執(zhí)行文件1?

     可執(zhí)行文件2

        .........

        最后將該批處理文件屬性該位可執(zhí)行。

  調(diào)試:在編譯時(shí)使用-g參數(shù),就可以使用gdb進(jìn)行調(diào)試。

  2、寫出內(nèi)存分配和釋放的函數(shù),并指出區(qū)別。

答案:

  C語言的標(biāo)準(zhǔn)內(nèi)存分配函數(shù):malloc,calloc,realloc,free等。

  malloc與calloc的區(qū)別為1塊與n塊的區(qū)別:

    malloc調(diào)用形式為(類型*)malloc(size):在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)中分配一塊長(zhǎng)度為“size”字節(jié)的連續(xù)區(qū)域,返



回該區(qū)域的首地址。

    calloc調(diào)用形式為(類型*)calloc(n,size):在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)中分配n塊長(zhǎng)度為“size”字節(jié)的連續(xù)區(qū)域,



返回首地址。

    realloc調(diào)用形式為(類型*)realloc(*ptr,size):將ptr內(nèi)存大?


小增大到size。

    free的調(diào)用形式為free(void*ptr):釋放ptr所指向的一塊內(nèi)存空間。

  C++中為new/delete函數(shù)。



  3、寫出socket函數(shù),并指出其功能。

  socket():建立socket通信描述符;

  bind():將套接字和機(jī)器上的一定的端口關(guān)聯(lián);

  connect():連接到遠(yuǎn)程主機(jī);

  listen():使套接字做好連接的準(zhǔn)備,規(guī)定等待服務(wù)請(qǐng)求隊(duì)列的長(zhǎng)度;

  accept():接受連接,一旦有客戶端發(fā)出連接,accept返回客戶地址信息和一個(gè)新的sock;

  有了這個(gè)新的sock,雙方就可以開始收發(fā)數(shù)據(jù):

  send()和recv():用于流式套接字或者數(shù)據(jù)套接字的通訊;

  sendto()和recvfrom():用于無連接的數(shù)據(jù)報(bào)套接字;

  close():關(guān)閉套接字;

  shutdown():選擇性的關(guān)閉套接字,可以只允許某一方向的通訊關(guān)閉;

  ?


getpeername():返回流式套接字時(shí)對(duì)端peer信息;

  gethostname():返回程序所運(yùn)行的機(jī)器的主機(jī)名字;

  gethostbyname():返回本機(jī)IP;



  第三部分編程題:

  1、從文件中讀取字符串?dāng)?shù)據(jù),反序顯示并大小寫轉(zhuǎn)換。

  2、給定26字母表以及對(duì)應(yīng)的密碼表,編程實(shí)現(xiàn)加密及解密功能。

  第四部分思考題(正是傳說中的字典糾錯(cuò)題):

  用戶在輸入英文單詞時(shí)經(jīng)常出錯(cuò),現(xiàn)對(duì)其進(jìn)行就錯(cuò)。給定一個(gè)正確的英文詞典,考慮糾錯(cuò)實(shí)現(xiàn)。1)指出思路。2)流程、算法難易程度及可能的改進(jìn)策略。

一道算法題目答案

int Replace(Stringtype &S,Stringtype T,Stringtype V);//將串S中所有子串T替換為V,并返回置換次數(shù)?

{?

for(n=0,i=1;i〈=Strlen(S)-Strlen(T)+1;i++) //注意i的取值范圍?

if(!StrCompare(SubString(S,i,Strlen(T)),T)) //找到了與T匹配的子串?

{ //分別把T的前面和后面部分保存為head和tail?

?


StrAssign(head,SubString(S,1,i-1));?

StrAssign(tail,SubString(S,i+Strlen(T),Strlen(S)-i-Strlen(T)+1));?

StrAssign(S,Concat(head,V));?

StrAssign(S,Concat(S,tail)); //把head,V,tail連接為新串?

i+=Strlen(V); //當(dāng)前指針跳到插入串以后?

n++;?

}//if?

return n;?

}//Replace?

分析:i+=Strlen(V);這一句是必需的,也是容易忽略的.如省掉這一句,則在某些情況下,會(huì)引起不希望的后果,雖然在大多數(shù)情況下沒有影響.請(qǐng)思考:設(shè)S='place', T='ace', V='face',則省掉i+=Strlen(V);運(yùn)行時(shí)會(huì)出現(xiàn)什么結(jié)果? (無限遞歸face)



百度2005年的筆試題


1.實(shí)現(xiàn) void delete_char(char * str, char ch);

 把str中所有的ch刪掉

2.把字符串S中所有A子串換成B,這個(gè)沒給函數(shù)原型

?


3.搜索引擎的日志要記錄所有查詢串,有一千萬條查詢,不重復(fù)的不超過三百萬

 要統(tǒng)計(jì)最熱門的10條查詢串. 內(nèi)存<1G. 字符串長(zhǎng) 0-255

 (1) 主要解決思路 //具體用詞和原題不大一樣

 (2) 算法及其復(fù)雜度分析


4.有字典,設(shè)計(jì)一個(gè)英文拼寫糾正算法 (1) 思想 (2) 算法及復(fù)雜度 (3) 改進(jìn)

5. { aaa, bb, ccc, dd }, { bbb, ff }, { gg } 等一些字符串的集合

 要求把交集不為空的集合并起來,如上例會(huì)得到 { aaa, bb, ccc, dd, ff }, {gg}

 (1) 思想 (2) 算法及復(fù)雜度 (3) 改進(jìn)?


2006百度筆試題?

一、選擇題:15分 共10題?

1.一個(gè)含有n個(gè)頂點(diǎn)和e條邊的簡(jiǎn)單無向圖,在其鄰接矩陣存儲(chǔ)結(jié)構(gòu)中共有__D__個(gè)零元素。?

A.e    B.2e    C.n2-e   D.n2-2e

2.__D__是面向?qū)ο蟪绦蛟O(shè)計(jì)語言中的一種機(jī)制。這種機(jī)制實(shí)現(xiàn)了方法的定義與具體的對(duì)象無關(guān),而對(duì)方法的調(diào)用則可以


?



關(guān)聯(lián)于具體的對(duì)象。?

A.繼承(Inhertance) B.模板(Template)?

C.對(duì)象的自身引用(Self-Reference) D.動(dòng)態(tài)綁定(Dynamic Binding)

3.應(yīng)用層DNS協(xié)議主要用于實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)功能. C

A. IP地址到網(wǎng)絡(luò)設(shè)備名字的映射 B. IP地址到網(wǎng)絡(luò)硬件地址的映射?

C. 網(wǎng)絡(luò)設(shè)備名字到IP地址的映射 D. 網(wǎng)絡(luò)硬件地址到IP地址的映射

補(bǔ)充:ARP協(xié)議工作原理:將IP地址映射為MAC地址

4.linux默認(rèn)情況下,一個(gè)進(jìn)程最多能打開多少文件?A?

A.64 B. 128 C. 512 D. 1024

5.下面結(jié)構(gòu)體?

struct s1 {?

char ch, *ptr;?

union {?

short a, b;?

unsigned int c:2, d:1;?

}?

?


struct s1 *next;?

};?

的大小是__D___:?

A. 12字節(jié) B.16字節(jié) C.20字節(jié) D. 24字節(jié)



6.任何一個(gè)基于"比較"的內(nèi)部排序的算法,若對(duì)6個(gè)元素進(jìn)行排序,則在最壞情況下所需的比較次數(shù)至少為_D___。?

A.10 B.11 C.21 D.36

7.以下不是進(jìn)程間通訊的是__C_ 補(bǔ)充:ABD+管道

A 共享內(nèi)存 B 信號(hào)量 C線程局部存儲(chǔ) D 消息隊(duì)列

8.下面程序,求count的值 A

int func(x)?

{?

int count= 0;?

x=9999;?

while(x)?

{?

Count ++;?

x = x&(x-1);?

?


}?

return count;?

}


A 8; B 10; C 5; D 11

補(bǔ)充:

#include<iostream.h>

int func(int x)?

{?

int count= 0;?

x=9999;?

while(x)?

{?

count ++;?

x = x&(x-1);?

}?

return count;?

}?

void main()

{

int y,z;

y=func(z);

cout<<y <<endl;

}

9.使用malloc系統(tǒng)調(diào)用分配的內(nèi)存是在__D__ 上分配的??

A 棧; B bss; C 物理內(nèi)存; D 堆

10.最壞情況下,合并兩個(gè)大小為n的已排序數(shù)組所需要的比較次數(shù)__B___?

A.2n B.2n-1 C.2n+1 D.2n-2



二、簡(jiǎn)答題:20分,共3題

1.(5分)下面這段代碼是把中英文混合字符串(漢字用兩個(gè)字節(jié)表示,特點(diǎn)是第一個(gè)字節(jié)的最高位為1)中的大寫字母轉(zhuǎn)



化為小寫字母,請(qǐng)找出其中的bug,注意各種異常情況。

for (char *piterator = szWord; *piterator != 0; piterator++)?

{?

if (*piterator & 0x80 != 0)?

{?

piterator++;?

}?

else if (*piterator >= 'A' && *piterator <= 'Z')



piterator += 32; // *piterator += 32

}



2.(5分)對(duì)給定的上億條無序的url,請(qǐng)按照domain、site以及path分別排序,并請(qǐng)指出排序過程中可能會(huì)遇到的哪些



問題?如何提高效率??

例如:http://www.baidu.com/path/about.html,domain、site以及path的定義分別如下:

Domain:baidu.com?

Site:www.baidu.com?

Path: www.baidu.com/path

可以用索引壓縮排序法

3.(10分)某型CPU的一級(jí)數(shù)據(jù)緩存大小為16K字節(jié),cache塊大小為64字節(jié);二級(jí)緩存大小為256K字節(jié),cache塊大小為



4K字節(jié),

采用二路組相聯(lián)。經(jīng)測(cè)試,下面兩段代碼運(yùn)行時(shí)效率差別很大,請(qǐng)分析哪段代碼更好,以及可能的原因。?

為了進(jìn)一步提高效率,你還可以采取什么辦法??

A段代碼?

int matrix[1023][15];?

const char *str = "this is a str";?

int i, j, tmp, sum = 0;



tmp = strlen(str);?

for(i = 0; i < 1023; i++) {?

for(j = 0; j < 15; j++) {?

sum += matrix[j] + tmp;?

}?

}



B段代碼?

int matrix[1025][17];?

const char *str = "this is a str";?

int i, j, sum = 0;



for(i = 0; i < 17; i++) {?

for(j = 0; j < 1025; j++) {?

sum += matrix[j] + strlen(str);?

}?

}

A段代碼效率會(huì)高出很多!首先A中函數(shù)strlen(str)只執(zhí)行了一次,而B中執(zhí)行了17*1025次.

其次是A段代碼的cache塊交換比B段代碼少,相應(yīng)的執(zhí)行時(shí)間也少,效率高............

根據(jù)一級(jí)緩存和二級(jí)緩存的大小和chach塊的大小,把數(shù)組定義為matrix[1024][16],外循環(huán)為1024次,內(nèi)循環(huán)為1



6次,則效率會(huì)更高.



A段代碼效率要遠(yuǎn)遠(yuǎn)高于B段代碼,原因有三:

1、?

B效率低最要命的地方就是每次都要調(diào)用strlen()函數(shù),這是個(gè)嚴(yán)重問題,屬于邏輯級(jí)錯(cuò)誤。假設(shè)A的兩層循環(huán)都不改變



,僅僅是把A的那個(gè)循環(huán)

里面的temp換成strlen()調(diào)用,在Windows 2000 (Intel 雙) 下測(cè)試,竟然是A的執(zhí)行時(shí)間的3.699倍。(這里沒有涉及



不同CPU有不同的Cache

設(shè)計(jì))僅僅是這一點(diǎn)就已經(jīng)說明B段代碼垃圾代碼。

2、

這也是一個(gè)邏輯級(jí)的錯(cuò)誤。在這里我們?cè)僮鰝€(gè)試驗(yàn),A、B段代碼分別采用大小一樣的數(shù)組[1023][15]、[1023]



[16]、[1023][17],只是

在循環(huán)上采取了不同的方式。兩者在運(yùn)行時(shí)間上也是有很大差異的了。B的運(yùn)行時(shí)間大概是A的1.130倍。

那么這是因?yàn)槭裁茨?#xff1f;其實(shí)也很簡(jiǎn)單,那就是A段代碼中的循環(huán)執(zhí)行語句對(duì)內(nèi)存的訪問是連續(xù)的,而B段代碼中的



循環(huán)執(zhí)行語句對(duì)內(nèi)存

的訪問是跳躍的。直接降低了B代碼的運(yùn)行效率。

這里不是內(nèi)層循環(huán)執(zhí)行多少次的問題,而是一個(gè)對(duì)內(nèi)存訪問是否連續(xù)的問題。

3、

A的二維數(shù)組是[1023][15],B的二維數(shù)組是[1027][17],在這里B段代碼有犯了一個(gè)CPU級(jí)錯(cuò)誤(或者是Cache級(jí)的錯(cuò)誤)



因?yàn)樵贑ache中數(shù)據(jù)或指令是以行為單位存儲(chǔ)的(也可以說是Cache塊),一行又包含了很多字。如現(xiàn)在主流的設(shè)計(jì)是一行



包含64Byte。每一行擁

有一個(gè)Tag。因此,假設(shè)CPU需要一個(gè)標(biāo)為Tag 1的行中的數(shù)據(jù),它會(huì)通過CAM對(duì)Cache中的行進(jìn)行查找,一旦找到相同Tag



的行,就對(duì)其中的數(shù)據(jù)

進(jìn)行讀取。

A的是15 *4B = 60B,一個(gè)Cache行剛好可以存儲(chǔ)。B的是17*4B = 68B,超過了一個(gè)Cache行所存儲(chǔ)的數(shù)據(jù)。

很明顯17的時(shí)候命中率要低于15的時(shí)候。

現(xiàn)在我們先不管A、B的循環(huán)嵌套的順序,僅僅拿A段代碼來做個(gè)試驗(yàn),我們將會(huì)分三種情況來進(jìn)行:

[1023][15] [1023][16] [1023][17]

運(yùn)行結(jié)果并沒有出乎意料之外 17 的時(shí)候的運(yùn)行時(shí)間大概是 15 的時(shí)候的1.399倍,除去有因?yàn)?7的時(shí)候多執(zhí)行循環(huán),



17/15 = 1.133 。

進(jìn)行折算,17的時(shí)候大概是15的時(shí)候的1.265倍。

16的時(shí)候的執(zhí)行時(shí)間要比15的時(shí)候的執(zhí)行時(shí)間要短,因?yàn)槭?6的時(shí)候,Cache命中率更高。16/15 = 1.066 ,

而15的執(zhí)行時(shí)間卻是16的1.068倍,加上16多執(zhí)行的消耗,進(jìn)行折算,15的時(shí)候大概是16的時(shí)候執(zhí)行時(shí)間的1.134倍。

因?yàn)锳段代碼是15,而B段代碼是17,在這一點(diǎn)上B段代碼的效率要低于A段代碼的效率。這是一個(gè)CPU級(jí)的錯(cuò)誤(或者是



Cache級(jí)的錯(cuò)誤),

這里涉及到Cache的塊大小,也就涉及到Cache命中率,也就影響到代碼效率。

不再假設(shè)什么,僅僅對(duì)A段和B段代碼進(jìn)行測(cè)試,B段代碼的執(zhí)行效率將是A段代碼執(zhí)行效率的3.95倍。

當(dāng)然最大的罪魁禍?zhǔn)拙褪荁中的重復(fù)調(diào)用strlen()函數(shù)。后面兩個(gè)錯(cuò)誤告訴我們當(dāng)需要對(duì)大量數(shù)據(jù)訪問的時(shí)候,

一定要注意對(duì)內(nèi)存的訪問要盡量是連續(xù)而且循環(huán)內(nèi)層的訪問接近Cache的塊大小,以提高Cache的命中率,從而提高程序



的運(yùn)行效率。?

所以可以對(duì)代碼進(jìn)行一下修改:

#define XX 15?

#define YY 1023

int matrix[XX][YY];

const char *str = "this is a str";

int i, j, tmp, sum = 0;

tmp = strlen(str);

for(i = 0; i < XX; i++)

for(j = 0; j < YY; j++)

sum += matrix[i][j] + tmp;

這個(gè)程序僅僅是把數(shù)組的聲明給顛倒了一下,循環(huán)也顛倒了一下,看起來和運(yùn)行起來和上面給出的A段代碼沒有多大的區(qū)別。

但是如果當(dāng)XX很小,比如:8,那么這段程序和給出的A段代碼就有區(qū)別了。這是因?yàn)檫@樣做可以提高Cache的命中率。




三、編程題:30分 共1題

注意:要求盡可能提供完整代碼,如果可以編譯運(yùn)行酌情加分。

1.內(nèi)存中有一個(gè)長(zhǎng)數(shù)組,條目數(shù)為10萬,數(shù)組單元為結(jié)構(gòu)體struct array,sizeof(struct array)為512字節(jié)。

結(jié)構(gòu)有一int型成員變量weight。現(xiàn)需要取得按weight值從大到小排序的前500個(gè)數(shù)組單元,請(qǐng)實(shí)現(xiàn)算法,要求效率盡可能高。

step1. 在內(nèi)存中建立一個(gè)長(zhǎng)度為500的緩沖區(qū)int型緩沖區(qū)

step2.遍歷此長(zhǎng)數(shù)組,按weight大小順序填充此緩沖區(qū),填入的值為數(shù)組的下表,非weight值 (由數(shù)組下表訪問weight是O(1)時(shí)間)

step3.遍歷完畢以后,按照由大到小的順序輸出數(shù)組單元

時(shí)間復(fù)雜度:O(n) (遍歷為O(n),每一次操作,即插入一個(gè)有序的數(shù)組復(fù)雜度為O(logm),m最大為500,所以總的時(shí)間復(fù)雜度是O(n))?

空間復(fù)雜度:O(1)


四、設(shè)計(jì)題:35分 共1題

注意:請(qǐng)盡可能詳細(xì)描述你的數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)架構(gòu)、設(shè)計(jì)思路等,建議多寫一些偽代碼或者流程說明。

1.請(qǐng)?jiān)O(shè)計(jì)一個(gè)字典。以字符串為索引,存儲(chǔ)用戶定義的定長(zhǎng)結(jié)構(gòu)。要求有增、刪、查、改的功能。

已經(jīng)給定一個(gè)函數(shù),可以由字符串映射到一個(gè)簽名,每個(gè)簽名由兩個(gè)unsigned int類型組成。

假設(shè)每一個(gè)字符串能夠?qū)?yīng)唯一的一個(gè)簽名,完全沒有重復(fù)(或者重復(fù)的概率可以忽略),并且簽名分布足夠均勻。

請(qǐng)描述你的數(shù)據(jù)結(jié)構(gòu)?內(nèi)存如何申請(qǐng)?增、刪、查、改的功能如何實(shí)現(xiàn)?如果操作很頻繁,該如何優(yōu)化?

2007年百度校園招聘會(huì)筆試題

1選錯(cuò)的

基類public成員在派生類中仍是public

基類protected成員在派生類中仍是protected

基類private成員在派生類中是隱藏

回去想的,我忘了錯(cuò)的怎么說的來著

2邊長(zhǎng)為n的正方形可以分成多個(gè)邊長(zhǎng)為1的正方形,如邊長(zhǎng)為2的正方形有2×2個(gè)邊長(zhǎng)為1的正方形和1個(gè)邊長(zhǎng)為2的正方形;問邊長(zhǎng)為5的正方形有幾個(gè)正方形;

3

public class Person {

public void printValue(int i,int j){

System.out.println("1111111111111");

}

public void printValue(int i){


System.out.println("22222222222");

}

}

public class Teacher extends Person {


public void printValue(){

System.out.println("333333333");


}

public void printValue(int i){

System.out.println("4444444444");


}

public static void main(String[] args) {


Person t=new Teacher();

t.printValue(10);


}

}

輸出結(jié)果是:4444444444

4.找錯(cuò)誤

int tolower(const char *str)

{

if(NULL==str) return 0;

int i=0,iCount=0;

for(;i<strlen(str);i++)

{

if(str[i]<='Z'||str[i]>='A')

{

str[i]+='z'-'Z';

iCount++;

}

}

return iCount;

}

5有個(gè)長(zhǎng)度為12的無重復(fù)有序表,按折半查找法進(jìn)行查找,在表內(nèi)各元素等概率情況下,查找成功所需的平均比較(三元比較)的次數(shù)為()

A 35/12 B37/12 C 39/12 D 43/12

6從n個(gè)數(shù)里面找最大的兩個(gè)數(shù)理論最少需要比較

A 2logn B 2 logn -1 C n+ logn -2 D 2n-3

7 386781634*234659874= 6(30秒)

8Linux的非root用戶,在自己的目錄中,不可以刪除非空目錄dirs的方法是:

A rm dir dirs B rm-rdirs C mv dirs /dev/null D destroy dirs

9 Shell運(yùn)算結(jié)果是3的是

A echo(9/3)

B echo$[16/5]

C echo$((10-7))

D echo’21/6’|bc

大題:

1 每個(gè)整數(shù)0-9這10個(gè)數(shù)組成,如223有2個(gè)2 ,和1個(gè)3,輸入m和n(0<m<n<10^20)

求出m到n之間所有整數(shù)共包含了多少個(gè)0,1。。。。9

實(shí)現(xiàn)函數(shù)void foo(const char*m, const char * n, char * result, size_t len )

result為輸出緩沖,len為result的長(zhǎng)度。

要求寫出思路、程序程序效率,計(jì)算時(shí)間復(fù)雜度和空間復(fù)雜度


2 linux32位系統(tǒng)下有10個(gè)無序文件,各文件大小不一(均小于1G)現(xiàn)在需要將此10個(gè)文件歸并為一組,不超過10個(gè)有序文件(第一個(gè)文件最大數(shù)小于或等于第二個(gè)文件最小數(shù),依次類推)請(qǐng)選擇你擅長(zhǎng)的語言實(shí)現(xiàn)說明 文件的每一行最大不超過128位的阿拉伯?dāng)?shù)字組合,每一行只有一個(gè)數(shù)字,頭一位不是零

要求寫出思路和程序,計(jì)算時(shí)間復(fù)雜度和空間復(fù)雜度

3 網(wǎng)頁3種操作,查詢,刪除,最加到末尾

例如:每頁顯示20個(gè),現(xiàn)在要查第50頁。假如用有序數(shù)組,則從下標(biāo)20×49開始,直接返回后面20個(gè)即可,但是當(dāng)刪除時(shí)會(huì)有大量數(shù)據(jù)移動(dòng),所以數(shù)組對(duì)刪除效率低,另外一種方法是,不刪除只作標(biāo)記,但是查詢時(shí)必須又從頭開始計(jì)數(shù),數(shù)一下應(yīng)該從哪個(gè)位開始返回



設(shè)計(jì)一種數(shù)據(jù)結(jié)構(gòu)高效率的完成3種功能

限制:1 操作在硬盤上發(fā)生

2 網(wǎng)頁大小不相同

3總數(shù)小于10M

4單個(gè)小于100K

4數(shù)據(jù)庫方面,不敢興趣沒記,不過看了下,不是很難

百度0711月4日網(wǎng)上筆試題及答案(僅供參考)?



1 編程:

  用C語言實(shí)現(xiàn)一個(gè)revert函數(shù),它的功能是將輸入的字符串在原串上倒序后返回。

2 編程:

  用C語言實(shí)現(xiàn)函數(shù)void * memmove(void *dest,const void *src,size_t n)。memmove函數(shù)的功能是拷貝src所指的



內(nèi)存內(nèi)容前n個(gè)字節(jié)到dest所指的地址上。

3 英文拼寫糾錯(cuò):

  在用戶輸入英文單詞時(shí),經(jīng)常發(fā)生錯(cuò)誤,我們需要對(duì)其進(jìn)行糾錯(cuò)。假設(shè)已經(jīng)有一個(gè)包含了正確英文單詞的詞典,請(qǐng)你設(shè)計(jì)一個(gè)拼寫糾錯(cuò)的程序。

(1)請(qǐng)描述你解決這個(gè)問題的思路;

(2)請(qǐng)給出主要的處理流程,算法,以及算法的復(fù)雜度;

(3)請(qǐng)描述可能的改進(jìn)(改進(jìn)的方向如效果,性能等等,這是一個(gè)開放問題)。



4 尋找熱門查詢:

  搜索引擎會(huì)通過日志文件把用戶每次檢索使用的所有檢索串都記錄下來,每個(gè)查詢串的長(zhǎng)度為1-255字節(jié)。假設(shè)目前有一千萬個(gè)記錄,這些查詢串的重復(fù)度比較高,雖然總數(shù)是1千萬,但如果除去重復(fù)后,不超過3百萬個(gè)。一個(gè)查詢串的重復(fù)度越高,說明查詢它的用戶越多,也就是越熱門。請(qǐng)你統(tǒng)計(jì)最熱門的10個(gè)查詢串,要求使用的內(nèi)存不能超過1G。

(1)請(qǐng)描述你解決這個(gè)問題的思路;

?


(2)請(qǐng)給出主要的處理流程,算法,以及算法的復(fù)雜度。



5 集合合并:

  給定一個(gè)字符串的集合,格式如: {aaa bbb ccc}, {bbb ddd},{eee fff},{ggg},{ddd hhh} 要求將其中交集



不為空的集合合并,要求合并完成后的集合之間無交集,例如上例應(yīng)輸出 {aaa bbb ccc ddd hhh},{eee fff}, {ggg}

(1)請(qǐng)描述你解決這個(gè)問題的思路;

(2)請(qǐng)給出主要的處理流程,算法,以及算法的復(fù)雜度

(3)請(qǐng)描述可能的改進(jìn)(改進(jìn)的方向如效果,性能等等,這是一個(gè)開放問題)。


1 題

char *revert(char * str)

{

int n=strlen(str);

int i=0;

char c;

for(i=0;i {

c=str;

str=str[n-i];

str[n-i]=c;

}

return str;

}



///

2 題

void * memmove(void *dest,const void *src,size_t n)

{

assert((dest!=0)&&(src!=0));

char * temp=(char * )dest;

char * ss=(char * )src;

int i=0;

for(;i {

  *temp =*ss ;

}

return temp;

}



/

3 題

(1)思路: 字典以字母鍵樹組織,在用戶輸入同時(shí)匹配

(2) 流程:

每輸入一個(gè)字母:?

沿字典樹向下一層,

a)若可以順利下行,則繼續(xù)至結(jié)束,給出結(jié)果;

b)若該處不能匹配,糾錯(cuò)處理,給出拼寫建議,繼續(xù)至a);

算法:



1.在字典中查找單詞



字典采用27叉樹組織,每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)字母,查找就是一個(gè)字母

一個(gè)字母匹配.算法時(shí)間就是單詞的長(zhǎng)度k.



2.糾錯(cuò)算法

情況:當(dāng)輸入的最后一個(gè)字母不能匹配時(shí)就提示出錯(cuò),簡(jiǎn)化出錯(cuò)處理,?


動(dòng)態(tài)提示可能 處理方法:

(a)當(dāng)前字母前缺少了一個(gè)字母:搜索樹上兩層到當(dāng)前的匹配作為建議;

(b)當(dāng)前字母拼寫錯(cuò)誤:當(dāng)前字母的鍵盤相鄰作為提示;(只是簡(jiǎn)單的描述,可 以有更多的)

根據(jù)分析字典特征和用戶單詞已輸入部分選擇(a),(b)處理

復(fù)雜性分析:影響算法的效率主要是字典的實(shí)現(xiàn)與糾錯(cuò)處理

(a)字典的實(shí)現(xiàn)已有成熟的算法,改進(jìn)不大,也不會(huì)成為瓶頸;

(b)糾錯(cuò)策略要簡(jiǎn)單有效 ,如前述情況,是線性復(fù)雜度;



(3)改進(jìn)

策略選擇最是重要,可以采用統(tǒng)計(jì)學(xué)習(xí)的方法改進(jìn)。

//

4 題

(1)思路:用哈希做

(2) 首先逐次讀入查詢串,算哈希值,保存在內(nèi)存數(shù)組中,同時(shí)統(tǒng)計(jì)頻度(注意值與日志項(xiàng)對(duì)應(yīng)關(guān)系)?



my.chinahrlab.com 選出前十的頻度,取出對(duì)應(yīng)的日志串,簡(jiǎn)單不過了。哈希的設(shè)計(jì)是關(guān)鍵。

?


//

5 題

(1)思路:先將集合按照大小排列后,優(yōu)先考慮小的集合是否與大的集合有交集。有就合并,如果小集合與所有其他集



合都沒有交集,則獨(dú)立。獨(dú)立的集合在下一輪的比較中不用考慮。這樣就可以盡量減少字符串的比較次數(shù)。當(dāng)所有集合



都獨(dú)立的時(shí)候,就終止。

(2)處理流程:

1.將集合按照大小排序,組成集合合并待處理列表

2.選擇最小的集合,找出與之有交集的集合,如果有,合并之;如果無,則與其它集合是獨(dú)立集合,從待處理列表 中刪



除。

3.重復(fù)直到待處理列表為空

算法: 1。將集合按照大小從小到大排序,組成待處理的集合列表。 2。取出待處理集合列表中最小的集合,對(duì)于集合的


?



每個(gè)元素,依次在其他集合中搜索是否有此元素存在:

1>若存在,則將此小集合與大集合合并,并根據(jù)大小插入對(duì)應(yīng)的位置 。轉(zhuǎn)3。

2>若不存在,則在該集合中取下一個(gè)元素。如果無下一個(gè)元素,即所有元素都不存在于其他集合。則表明此集合獨(dú)立,



從待處理集合列表中刪除。并加入結(jié)果集合列表。轉(zhuǎn)3。

3。如果待處理集合列表不為空,轉(zhuǎn)2。

如果待處理集合列表為空,成功退出,則結(jié)果集合列表就是最終的輸出。

算法復(fù)雜度分析:

  假設(shè)集合的個(gè)數(shù)為n,最大的集合元素為m 排序的時(shí)間復(fù)雜度可以達(dá)到n*log(n) 然后對(duì)于元素在其他集合中查找,最壞情況下為(n-1)*m 查找一個(gè)集合是否與其他集合有交集的最壞情況是m*m*(n-1) 合并的時(shí)間復(fù)雜度不會(huì)超過查找集合有交集的最壞情況。所以最終最壞時(shí)間復(fù)雜度為O(m*m*n*n)

  需要說明的是:此算法的平均時(shí)間復(fù)雜度會(huì)很低,因?yàn)闊o論是查找還是合并,都是處于最壞情況的概率很小,而且排序后優(yōu)先用最小集合作為判斷是否獨(dú)立的對(duì)象,優(yōu)先與最大的集合進(jìn)行比較,這些都最大的回避了最壞情況。

?


?(3)可能的改進(jìn):

  首先可以實(shí)現(xiàn)將每個(gè)集合里面的字符串按照字典序進(jìn)行排列,這樣就可以將查找以及合并的效率增高。另外,可能采取恰當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)也可以將查找以及合并等操作的效率得到提高。

2. 2. 百度面試

2.1 ?2013年9月26日,百度技術(shù)類一二面

1、給定一數(shù)組,輸出滿足2a=b(a,b代表數(shù)組中的數(shù))的數(shù)對(duì),要求時(shí)間復(fù)雜度盡量低。

2、搜索引擎多線程中每個(gè)線程占用多少內(nèi)存?如果搜索引擎存儲(chǔ)網(wǎng)頁內(nèi)存占用太大怎么解決?

3、有很多url,例如*.baidu.com,*.sina.com ......

現(xiàn)在給你一個(gè)sports.sina.com 快速匹配出是*.sina.com。點(diǎn)評(píng):老題,此前blog內(nèi)曾整理過。

4、找出字符串的編輯距離,即把一個(gè)字符串s1最少經(jīng)過多少步操作變成編程字符串s2,操作有三種,添加一個(gè)字符,刪除一個(gè)字符,修改一個(gè)字符(只要聽過編輯距離,知道往動(dòng)態(tài)規(guī)劃上想,很快就可以找到解法)。

5、編程實(shí)現(xiàn)memcopy,注意考慮目標(biāo)內(nèi)存空間和源空間重疊的時(shí)候。

6、實(shí)現(xiàn)簡(jiǎn)單的一個(gè)查找二叉樹的深度的函數(shù)。


?


2.2 ?百度軟件開發(fā)工程師一面問題

1.有101個(gè)數(shù),為[1,100]之間的數(shù),其中一個(gè)數(shù)是重復(fù)的,如何尋找這個(gè)重復(fù)的數(shù),其時(shí)間復(fù)雜度和空間復(fù)雜度是多少?

2.Java中抽象類與接口的區(qū)別。

3.進(jìn)程與線程之間的聯(lián)系與區(qū)別。(多家公司都在問,好好研究一下)

4.談?wù)剬?duì)設(shè)計(jì)模式的認(rèn)識(shí)與理解,簡(jiǎn)單介紹一下你所知道的設(shè)計(jì)模式。(多家公司都問,Android方向面試必考的)

5.線程、多線程相關(guān)(必問)

6.Linux常用的命令,shell編程,grep命令的使用。

7.海量數(shù)據(jù)查找或者排序,有資源限制要求。(常考的)

? ? ? ? 建議:簡(jiǎn)歷中對(duì)自己的專業(yè)技能要實(shí)事求是的寫,突出自己的重點(diǎn),不宜托大,面試官面試時(shí)提問的依據(jù)就是簡(jiǎn)歷上的內(nèi)容。百度的工作環(huán)境很好,做技術(shù)的員工給人的感覺就是雖然人家的技術(shù)水平很高,但是都比較謙遜。百度確實(shí)是一個(gè)不錯(cuò)的互聯(lián)網(wǎng)公司。

2.3 ?百度Android兩輪面試經(jīng)驗(yàn)

百度技術(shù)面試分為兩輪:

第一輪基礎(chǔ)技術(shù)面試,一般為項(xiàng)目負(fù)責(zé)人,主要考察基本知識(shí)及知識(shí)廣度

第二輪面試一般為部門負(fù)責(zé) 人,主要考察技術(shù)深度。基礎(chǔ)面試感覺個(gè)人答的還不錯(cuò),主要詢問了一些關(guān)于android基本知識(shí)的考察,涉及到Activity之間的跳轉(zhuǎn),然后問了一些 關(guān)于所參與項(xiàng)目中遇到的?


問題,比如現(xiàn)在做的云信項(xiàng)目中,如何提供傳輸效率等,然后討論了一下關(guān)于View刷新機(jī)制等問題。總體來看一面比較容易,時(shí)間差不多一個(gè)半小時(shí)。


第二輪面試,面試官看起來挺嚴(yán)肅的,當(dāng)然由于是考技術(shù)深度,所以難度加大了,當(dāng)然自己也敗在這里邊了。由于看到簡(jiǎn)歷邊有說JNI這塊,他就特地主要文這塊了,所有問題基本都是以C和數(shù)據(jù)結(jié)構(gòu)為主。

主要問道:

1. 實(shí)現(xiàn)Strlen(char* str)

2. 說說常見的兩種數(shù)據(jù)結(jié)構(gòu)之間的區(qū)別,這里邊問道了MAP,TREE,隊(duì)列,數(shù)據(jù),棧等。并且說說時(shí)間復(fù)雜度及空間復(fù)雜度。

3. 說說地圖定位方式,詳細(xì)說說wifi定位是如何實(shí)現(xiàn)的。

總體而言,之所以答的不好,對(duì)常見的數(shù)據(jù)結(jié)構(gòu)確實(shí)并不是很熟悉,沒有做好充分準(zhǔn)備,建議如果去面試,好好復(fù)習(xí)《劍指名企Offer》。

第三個(gè)問題,面試官讓發(fā)揮想象去考慮wifi是怎么實(shí)現(xiàn)定位的,沒有答出來。


轉(zhuǎn)自請(qǐng)注明來源:http://www.dy1280.com

轉(zhuǎn)載于:https://blog.51cto.com/6712754/1549946

總結(jié)

以上是生活随笔為你收集整理的百度2014校园招聘笔试面试汇总的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

精品欧美一区二区在线观看 | 亚洲黄色网络 | 青草视频网| 九九导航 | 狠狠色丁香久久婷婷综合丁香 | av 在线观看| 色国产在线 | 国产成人精品一区一区一区 | 精品久久久一区二区 | 久久久久久久久久免费视频 | 欧美一级专区免费大片 | 国产视频资源 | 97香蕉久久超级碰碰高清版 | 精品久久久久久久久久久久久久久久久久 | 精品96久久久久久中文字幕无 | 狠狠成人| 亚洲免费av在线播放 | 欧洲一区二区三区精品 | 久久8| 91精彩在线视频 | 麻豆精品视频在线观看免费 | 超碰人人av| av先锋中文字幕 | 精品在线观看一区二区 | 成人影片在线播放 | 亚洲人成在线观看 | 日韩免 | 日韩精品久久久久久久电影竹菊 | 久久午夜精品 | 久久婷婷开心 | 性色在线视频 | 九九免费观看全部免费视频 | 尤物97国产精品久久精品国产 | 免费视频一二三区 | 亚洲日本一区二区在线 | 国产理论一区二区三区 | 欧美日本啪啪无遮挡网站 | 丁香花在线视频观看免费 | 香蕉视频久久久 | 中文字幕在线观看第二页 | 久久久久久久久久久久亚洲 | 欧美午夜视频在线 | 91探花在线 | 在线观看亚洲免费视频 | 成人av电影免费在线观看 | 欧美一级片在线播放 | 中文字幕免费观看全部电影 | 亚洲欧洲一区二区在线观看 | 亚洲精品国偷拍自产在线观看蜜桃 | 日韩一级片观看 | 日韩在线观看网址 | 中文字幕在线观看完整版 | 欧美成人影音 | 天天操综合 | 免费看黄视频 | 国产福利91精品一区二区三区 | 黄色tv视频| 国产成人资源 | 亚洲精品视频偷拍 | 91精品免费在线 | 偷拍区另类综合在线 | 亚洲精品视频在线观看免费 | 欧美日韩成人一区 | 国产一区在线免费观看视频 | 久精品在线 | 一级电影免费在线观看 | 日韩欧美在线播放 | 欧美日韩在线免费观看 | 亚洲成av| 国产涩涩在线观看 | 亚洲一区美女视频在线观看免费 | 又黄又爽又刺激 | 国产 日韩 欧美 在线 | 日韩sese| 国产永久免费高清在线观看视频 | 欧美日韩高清一区 | 亚洲人成人天堂h久久 | 国产成人一二片 | www.激情五月.com| 欧美久久综合 | 一区二区视频在线播放 | 欧美在线aaa | 99国内精品 | 国产 一区二区三区 在线 | 中文字幕在线观看一区 | 欧美一二三四在线 | 亚洲四虎| 日本中文字幕在线 | 91精品国产高清自在线观看 | 亚洲精品小视频 | 国产精品久久久久久a | 韩国精品视频在线观看 | 国产精品福利久久久 | 亚洲国产欧美一区二区三区丁香婷 | 99久久www| 在线免费观看视频一区二区三区 | 18国产精品白浆在线观看免费 | 综合激情网... | 国内外成人免费在线视频 | av在线最新| 91视频国产免费 | 精品电影一区二区 | 免费在线观看中文字幕 | 日韩欧美在线第一页 | 九九视频一区 | 免费在线观看不卡av | 亚洲 中文字幕av | 成人久久国产 | 国产一线二线三线在线观看 | 成人午夜片av在线看 | 午夜视频在线观看一区二区三区 | 国产中文字幕一区二区 | 久久精品之 | 久久三级毛片 | 麻豆手机在线 | 美女视频黄在线 | 久艹在线播放 | av一区二区三区在线观看 | 免费一级片在线观看 | 亚洲影院国产 | 国产午夜精品一区二区三区四区 | 久久久免费观看 | 成人在线观看资源 | 天天操天天干天天爽 | 日韩欧美亚州 | 精品高清视频 | 亚洲免费一级电影 | 成人羞羞视频在线观看免费 | 国产精品一区在线观看你懂的 | 国产精品mm | 国产在线国偷精品产拍免费yy | 国产99亚洲 | 99国产在线 | 免费色视频在线 | 久久精品视频国产 | 国产精品久久久久亚洲影视 | 国产成人av| 天天激情天天干 | japanesefreesex中国少妇 | 最新免费中文字幕 | 色资源网在线观看 | 超碰日韩在线 | 国产精国产精品 | 欧美久草在线 | 草草草影院 | 中文字幕视频在线播放 | 四虎国产精品成人免费影视 | 国产91精品一区二区绿帽 | 玖玖视频精品 | 2019中文字幕网站 | 最新av在线播放 | 久久99电影| 国产精品欧美久久 | 丁香激情综合 | 97在线免费观看 | 91精品视频网站 | 久久久伊人网 | 91香蕉亚洲精品 | 人人插超碰 | 亚洲国产影院 | 亚洲91网站 | 亚洲综合精品在线 | 五月开心六月伊人色婷婷 | 99福利影院 | 九九热免费精品视频 | 国产精品久久久久一区二区 | 91麻豆操 | 91av观看| 国产精品久久久久一区二区三区共 | 成人免费在线观看入口 | 婷婷激情五月 | 久草av在线播放 | 国产在线观看污片 | 黄a在线看| 久久九九九九 | 国产不卡精品 | 六月激情| 波多野结衣在线视频一区 | 久久免费福利 | 91精品在线播放 | 国产黄网站在线观看 | 欧美吞精| 色综合久久久久网 | 中文字幕中文中文字幕 | 日韩欧美在线观看一区二区三区 | 三级在线视频观看 | 欧美另类v | 一级成人网 | 亚洲成av人片在线观看无 | 国产免费二区 | 91污视频在线观看 | 久久九九精品 | 久久国产亚洲精品 | 狠狠色噜噜狠狠狠 | 久久免费视频2 | 免费午夜网站 | 国产在线精品播放 | 超碰免费观看 | 久久精品一区二区三区四区 | 成在线播放 | 热99久久精品 | 日韩av电影中文字幕在线观看 | 婷婷在线视频观看 | 久久久久免费精品国产 | 欧美综合国产 | 91欧美在线 | 国产小视频在线免费观看视频 | 国产精品一区二区在线 | 久久久久久久99精品免费观看 | 2019中文字幕第一页 | 国色综合 | 99久免费精品视频在线观看 | 中文字幕中文字幕中文字幕 | 国产一区欧美在线 | 日韩成人高清在线 | 国产精品久久久免费 | av在线永久免费观看 | 国产精品视频免费看 | 麻豆视频一区 | 99精品在线免费在线观看 | 亚洲国产精品99久久久久久久久 | 久草在线最新视频 | 91视频最新网址 | 亚洲国产三级在线 | 九九爱免费视频在线观看 | 黄色免费在线视频 | 黄色影院在线观看 | 久精品视频在线观看 | 日韩精品在线观看视频 | 国产精品99久久久久久宅男 | 男女激情免费网站 | 最近中文字幕大全中文字幕免费 | 日本性xxxxx 亚洲精品午夜久久久 | 免费av网站在线 | 国产高清免费av | 日韩视频免费在线观看 | 天天操天天操天天操天天 | 久久激情网站 | 欧美性生活免费看 | 有码一区二区三区 | 亚洲综合网站在线观看 | 久久午夜影院 | 国产成人综合在线观看 | 国产成人av在线 | 草在线| 久久久伦理 | 国产精品不卡在线播放 | 国产网红在线观看 | av高清在线观看 | 777xxx欧美 | 操操操天天操 | 天天操天天射天天 | 婷婷激情5月天 | 精品国产一区二区三区四区vr | 亚洲va天堂va欧美ⅴa在线 | 天天干天天操av | 九九免费在线看完整版 | 福利一区二区在线 | 欧美a√在线 | 久草网站在线观看 | 在线观看网站你懂的 | 久久国产精品免费 | 免费高清在线观看成人 | 亚洲高清精品在线 | 国产日韩精品在线观看 | 麻豆激情电影 | 丝袜美女视频网站 | 五月综合激情 | 亚洲电影久久久 | bbw av| 午夜影院一级片 | 国产精品久久99综合免费观看尤物 | 女人高潮特级毛片 | 亚洲精品黄网站 | 成人黄色电影免费观看 | 狠狠色丁香久久综合网 | 韩国三级av在线 | 日本在线观看中文字幕无线观看 | 手机色在线 | 91在线视频观看免费 | 深爱激情综合网 | 日韩欧美极品 | 国产电影一区二区三区四区 | 色婷婷丁香 | 国产午夜精品免费一区二区三区视频 | 成年人在线免费看 | 中文字幕一区二区三区乱码在线 | 丁香六月激情 | 日韩美女高潮 | 亚洲精品视频在线观看免费视频 | 激情婷婷在线观看 | 日本精品视频网站 | 欧美视频99 | 国产精品成人一区二区三区吃奶 | 色五丁香 | 免费毛片一区二区三区久久久 | av免费线看| 欧美成人久久 | 欧美精品v国产精品 | 国产精品午夜在线观看 | 久久精品一区二区国产 | av中文字幕在线看 | 国产亚洲人 | 一级黄色片毛片 | 亚洲无人区小视频 | 亚洲国产精品一区二区久久hs | 欧美日韩在线视频免费 | 一区在线免费观看 | 嫩草av在线| 六月久久婷婷 | 亚洲毛片久久 | 91在线小视频 | 午夜在线免费视频 | 操碰av | 久久久亚洲网站 | 亚洲人成免费网站 | 国产九九九精品视频 | 亚洲精品国 | 久久久精品在线观看 | 亚洲精品在线免费看 | 久久99精品久久久久久久久久久久 | 国产91九色蝌蚪 | 超碰99人人 | 天天操天天能 | 视频在线观看91 | 亚洲精品美女 | 综合铜03 | 免费观看久久 | 开心综合网 | 久久国产亚洲精品 | 高清免费在线视频 | 精品99久久久久久 | 911av视频 | 亚洲午夜精品一区二区三区电影院 | av电影在线观看 | 欧美亚洲久久 | 成av在线 | 黄色国产在线观看 | 中文字幕黄色网 | 99久久久久久久 | 国产精品系列在线播放 | 中文视频在线看 | 婷婷福利影院 | 久久五月精品 | 在线影院 国内精品 | 在线观看免费一区 | 日本资源中文字幕在线 | 亚洲国产综合在线 | 一二三区视频在线 | 国产成人av网址 | 国产日韩精品一区二区 | 毛片网站在线 | 99精品国产免费久久 | 成年人免费看av | 国产无遮挡又黄又爽在线观看 | av福利在线导航 | 天天操夜夜操 | 中文字幕一区二区三区四区视频 | 中国一区二区视频 | 天天操夜夜干 | 国产麻豆剧果冻传媒视频播放量 | 欧美日韩二三区 | 久久精品久久99 | 久久久久女教师免费一区 | 国产精品网在线观看 | 免费国产黄线在线观看视频 | 日本激情视频中文字幕 | 亚洲国产欧美在线看片xxoo | 国产伦精品一区二区三区高清 | 久草免费资源 | 日韩电影在线观看中文字幕 | 久久一区国产 | 欧美天天综合 | 亚洲精品视频在线观看网站 | 黄色大片国产 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 色噜噜狠狠狠狠色综合久不 | 国产成人在线免费观看 | 狠狠操夜夜| 亚洲 精品在线视频 | 中文字幕欲求不满 | 狠狠的操你 | 国产日产av | 中文字幕欧美三区 | 色综久久| 久久精品一区二区国产 | 91在线免费视频 | 日韩久久在线 | 97看片 | 欧美日韩高清在线一区 | 麻花豆传媒mv在线观看网站 | 日日操天天操狠狠操 | 久久成人18免费网站 | 欧美成人精品三级在线观看播放 | 狠狠操.com| 精品久久国产精品 | 日日日爽爽爽 | 在线免费黄色片 | 深爱婷婷网 | 国产在线一区二区 | 五月婷婷开心中文字幕 | 丁香婷婷激情 | 超碰av在线免费观看 | 久热av| 中文字幕婷婷 | 欧美精品一区二区在线播放 | 免费网站观看www在线观看 | 99久久精品国产一区二区成人 | 欧美日韩3p| 久久www免费人成看片高清 | 欧美日韩一区二区在线 | 日日夜夜精品视频 | 韩日三级在线 | 国产精品手机看片 | 在线观看免费高清视频大全追剧 | 在线看黄色av | 久久久久免费网 | 久草网在线视频 | 黄色一级大片免费看 | a√资源在线 | 亚洲综合色激情五月 | 97色婷婷 | 日本精品在线 | 天天色天天操天天爽 | 亚洲成人xxx | 不卡的一区二区三区 | 999久久久免费精品国产 | 91精品久久久久久综合乱菊 | 777视频在线观看 | 国产精品久久99综合免费观看尤物 | 欧美小视频在线 | 又黄又爽又无遮挡的视频 | a黄色一级| 日韩电影在线看 | 91精品久久久久久久久久入口 | 免费观看mv大片高清 | 日韩一区正在播放 | 免费观看国产视频 | 伊人天天操 | 欧美在线不卡一区 | 五月婷婷在线视频观看 | 亚洲美女精品视频 | 成人小视频在线免费观看 | 久草在线官网 | 最近最新中文字幕 | 又黄又爽又刺激视频 | 日本高清中文字幕有码在线 | 激情欧美xxxx | 日韩一区二区三区免费电影 | 久久av伊人| 极品国产91在线网站 | 人人爽人人爽人人片 | 国产成人免费在线观看 | 99精品国产成人一区二区 | 开心激情网五月天 | 丁香国产视频 | 99久久精品午夜一区二区小说 | 午夜黄色大片 | 日韩成人免费在线电影 | 日韩黄色一级电影 | 国产亚洲成av片在线观看 | 国产精品久久久久久久免费 | 色综合久久天天 | 综合av在线 | 婷婷国产在线 | 日韩大片在线 | 精品人人人 | 久久不射电影网 | 中文不卡视频在线 | 国产免费久久精品 | 人人爽人人爽av | 狠狠88综合久久久久综合网 | 久久影视中文字幕 | 精品999| 911精品美国片911久久久 | 最新成人在线 | 超碰在线9 | 日本午夜在线亚洲.国产 | 免费看黄色大全 | 青青射| 日本最新中文字幕 | www.在线看片.com | 黄av免费| 欧美日韩不卡在线 | 不卡精品 | 亚洲激情综合网 | 美女视频久久黄 | 日韩av在线网站 | 在线观看的黄色 | 91亚洲精品久久久久图片蜜桃 | 久久精品美女 | 婷婷网址 | 热久久视久久精品18亚洲精品 | 丝袜足交在线 | 国精产品满18岁在线 | av丝袜在线 | 国产无套精品久久久久久 | 中文久草 | 久草视频在线播放 | 日本黄色免费电影网站 | 国产麻豆视频在线观看 | 国产精品免费在线观看视频 | 综合网av | 麻花豆传媒mv在线观看网站 | 欧美一二三在线 | 亚洲国产美女精品久久久久∴ | 日韩簧片在线观看 | 91九色丨porny丨丰满6 | 91视频一8mav| 国产精品久久久久久吹潮天美传媒 | 麻豆mv在线观看 | 亚洲激情av | 婷婷丁香激情综合 | 国产精品门事件 | 日韩久久午夜一级啪啪 | 黄色精品免费 | 亚洲国产精品传媒在线观看 | 色综合久久精品 | 特级西西www44高清大胆图片 | 亚洲男男gaygay无套 | www.黄色网.com | 久久久久伦理电影 | 又黄又爽免费视频 | 夜夜夜夜夜夜操 | 久久精品视频国产 | 久久精品亚洲精品国产欧美 | 中文字幕 国产视频 | 国产一区二区电影在线观看 | 亚洲精品久久在线 | 亚洲国产一区二区精品专区 | 国产精品久久久久久久久久新婚 | 精品一区二区三区电影 | 亚洲日本在线一区 | 久久图 | 亚洲免费在线观看视频 | 一区二区欧美在线观看 | 久久国产成人午夜av影院潦草 | 日韩视频一二三区 | 天天艹天天 | 一本一本久久a久久精品综合妖精 | 992tv成人免费看片 | 天海翼一区二区三区免费 | 日韩中文字幕免费在线播放 | 国产亚洲欧美日韩高清 | 在线观看视频黄色 | 久久九九九九 | 久久精品一区二区三区国产主播 | 久久国产精品99久久久久久进口 | 人人看人人爱 | 丝袜+亚洲+另类+欧美+变态 | www.亚洲视频.com | 欧美 日韩 国产 中文字幕 | 中文字幕亚洲情99在线 | 国产精品美女久久久久久久久久久 | 麻豆91在线看 | 亚洲精品在线观看网站 | 国产精品系列在线 | 欧美日韩精| 在线视频1卡二卡三卡 | 天天操比| 国产精品va在线观看入 | 日本女人逼| 一区精品久久 | 亚洲激色 | 97夜夜澡人人爽人人免费 | 久草线 | 色婷婷综合视频在线观看 | 国产精品久久久久久久久久久久久 | 91成版人在线观看入口 | 色99网 | 最近更新中文字幕 | 久久你懂的| 在线看不卡av| 国产精品一区二区av影院萌芽 | 日韩欧美有码在线 | 去干成人网 | 一区二区视频在线免费观看 | 97电影在线看视频 | 国产成人久久精品一区二区三区 | 91成年人视频 | 成年人在线播放视频 | 久久99亚洲精品久久 | 国产成人精品国内自产拍免费看 | japanesexxxhd奶水 国产一区二区在线免费观看 | 四虎影视久久久 | 久久免费看av| 蜜臀久久99精品久久久无需会员 | 成人a视频片观看免费 | 又黄又刺激视频 | 日日夜夜狠狠 | 五月天婷婷在线观看视频 | 日韩午夜在线 | 欧美在线99 | 中文字幕av专区 | 中文字幕视频 | 97超碰中文字幕 | 亚洲免费视频在线观看 | 久久综合欧美 | 亚洲成人av在线电影 | 久久久久久久18 | 韩日精品在线 | 午夜久久久久久久 | 亚洲精品乱码久久久久久按摩 | 99精品免费久久久久久久久日本 | 亚洲天天草 | 国产主播大尺度精品福利免费 | 欧美激情操 | 一级黄色片在线播放 | 91爱爱中文字幕 | 国产精品久久久久久久电影 | 日韩一区在线免费观看 | 97av影院| 日韩av电影免费观看 | 国产精品第2页 | 黄色电影网站在线观看 | 久久福利综合 | 精品国产精品久久 | 成人三级网站在线观看 | 99性视频| 久久99热这里只有精品国产 | 免费高清在线观看成人 | 亚洲综合五月天 | 国产精品成人av久久 | 黄色av播放 | 欧美精品一区在线发布 | 精品国产aⅴ麻豆 | 久久a热6| 精品国产一区在线观看 | 99热这里精品 | 成人h动漫在线看 | 欧美色噜噜噜 | 日韩va亚洲va欧美va久久 | 日日夜夜人人精品 | 五月婷婷色 | 亚洲电影网站 | 成人久久久久久久久 | 99爱爱| 亚洲最大成人网4388xx | 国产精品淫片 | 青青河边草手机免费 | 特级黄色视频毛片 | 色五月色开心色婷婷色丁香 | 午夜性生活 | 亚洲综合导航 | 成人精品在线 | 午夜影院三级 | 中文字幕日韩国产 | 最近中文字幕国语免费高清6 | 日本丰满少妇免费一区 | 天天干天天弄 | 国内精品一区二区 | 久久久国产精品麻豆 | 久久69av| 国产麻豆剧传媒免费观看 | 亚洲小视频在线 | 综合久久网站 | 免费久久片| 国产成人精品一区二区三区 | 伊人久久精品久久亚洲一区 | av色图天堂网 | 亚洲区精品视频 | 亚洲天天在线日亚洲洲精 | 久久久av电影 | 免费成人黄色 | 国产在线综合视频 | 成人国产精品久久久 | 精品国产一区二区三区av性色 | 国产精品免费久久久久 | 成人av观看 | 日本精品久久久久中文字幕 | 国产亚洲在线视频 | 99热这里只有精品1 av中文字幕日韩 | 中文在线字幕免费观看 | 亚洲综合精品在线 | 天天天天爽| www.av在线播放 | 有码一区二区三区 | 免费手机黄色网址 | 亚洲成人高清在线 | 黄色在线观看免费网站 | 一区二区三区中文字幕在线 | 欧美一级性生活视频 | 韩国av一区二区三区在线观看 | 免费在线电影网址大全 | 国产黑丝一区二区 | 麻豆视频www | 日韩成人免费在线观看 | 色综合久久网 | 日本少妇高清做爰视频 | 99视频在线精品 | 亚洲另类交 | 伊人在线视频 | 日韩美女av在线 | 手机看片国产 | 亚洲aⅴ免费在线观看 | 精品久久久久久久久久久院品网 | 草久视频在线 | 蜜臀av免费一区二区三区 | 久久久久久中文字幕 | 一级黄色片在线观看 | 久久99免费观看 | 在线观看av不卡 | 成人免费在线播放视频 | 91成人精品一区在线播放69 | 丁香 久久 综合 | 美女网站色 | 日日成人网| 国产网站在线免费观看 | 青青河边草观看完整版高清 | 婷婷久久综合网 | 一区二区电影网 | 亚洲涩涩涩涩涩涩 | 欧美aa级| 高清av在线免费观看 | 日韩午夜一级片 | 国产精品久久久一区二区 | 成人欧美在线 | 久久久久久久久免费视频 | 亚洲黄色免费在线看 | 久久不卡电影 | 亚洲精品91天天久久人人 | 免费在线观看中文字幕 | 99精品欧美一区二区 | 最近免费观看的电影完整版 | 色狠狠综合天天综合综合 | 一级免费观看 | 伊人成人久久 | 久久久久久久久毛片 | 久久久在线免费观看 | 福利视频一区二区 | 在线观看欧美成人 | 国产又粗又猛又黄视频 | 国产片免费在线观看视频 | 一区 在线观看 | 在线视频欧美精品 | 色吊丝在线永久观看最新版本 | 久久图| 91av中文字幕 | 天天搞天天干天天色 | 国产 一区二区三区 在线 | 欧美视频国产视频 | 国产在线欧美在线 | 人人精品| 日韩精品电影在线播放 | 黄色小说免费观看 | 午夜精品久久久久久 | 综合色天天 | 国产视频一区在线免费观看 | 国产高清一级 | av短片在线| 国产精品国产三级国产aⅴ9色 | 一区二区视频播放 | 黄色大片中国 | 久久大香线蕉app | 久久久www成人免费毛片 | 久久免费在线 | 免费一级片视频 | 国产精品久久久久国产精品日日 | 97超视频免费观看 | 亚洲激情电影在线 | 狠狠色丁香婷婷综合最新地址 | 99人成在线观看视频 | 中文字幕成人在线 | 国产日韩欧美精品在线观看 | 天天搞天天 | 国产最新精品视频 | 色香蕉在线 | 最近中文字幕视频完整版 | 国产又黄又猛又粗 | 国产精品一区二区免费看 | 国产精品k频道 | 日本黄区免费视频观看 | 九九欧美| 久久国产精品久久久久 | 国产精品精品久久久 | 久久久久久久免费看 | 成人午夜免费剧场 | 在线观看视频国产 | 九九在线视频免费观看 | 国产精品九九视频 | 日韩一区二区三区免费电影 | 免费观看www7722午夜电影 | 最新在线你懂的 | 欧美视频日韩视频 | 欧美精品一区二区免费 | 碰超人人| 看黄色.com | 中文字幕不卡在线88 | 欧美一区二区伦理片 | 日韩黄色免费看 | 人人干干人人 | 又黄又刺激视频 | 欧美三级在线播放 | 亚州av网站大全 | 888av| 免费看久久 | 亚洲精品在线二区 | 色偷偷网站视频 | 最近免费观看的电影完整版 | 99爱精品视频 | 国产激情久久久 | 国产精品久久久久久吹潮天美传媒 | av丁香花| 超碰精品在线 | 亚洲视频一区二区三区在线观看 | 在线日韩亚洲 | 中文字幕一区二区三区四区久久 | 一区二区精品在线观看 | 日p在线观看 | 欧美 国产 视频 | 亚洲精品国偷拍自产在线观看 | 91精品在线播放 | 久久神马影院 | 超碰在线成人 | 91网页版免费观看 | av中文字幕av | 视频在线一区二区三区 | 91国内产香蕉 | 中国一级片免费看 | 久久精品爱视频 | 国产91勾搭技师精品 | 国产福利精品视频 | 在线午夜电影神马影院 | 欧洲精品久久久久毛片完整版 | 又紧又大又爽精品一区二区 | 国产精品网站 | 国产成人精品一区二三区 | 91网页版在线观看 | 狠狠狠色 | 天天操天天干天天 | 色网站中文字幕 | 五月天六月色 | 国产精品99久久久久久武松影视 | 91丨九色丨国产在线观看 | 国产一区免费在线 | 欧美精品一区二区性色 | 99精品在线免费 | 成人免费视频免费观看 | 国产永久免费观看 | 国产精品一区专区欧美日韩 | 欧美精品午夜 | 日韩精品不卡在线 | 99久久精品无免国产免费 | 99久久精品国产一区 | 伊人久久婷婷 | 99久久久久国产精品免费 | 五月婷婷av | 午夜视频一区二区三区 | 国产91精品高清一区二区三区 | 91精品资源 | 欧美日韩精品电影 | 最新国产视频 | 中文字幕av最新 | 亚洲第一中文字幕 | 麻豆免费视频网站 | 国产69久久精品成人看 | 久久久首页 | 免费看黄色小说的网站 | 一区二区三区免费看 | 最近能播放的中文字幕 | 国产精品视频999 | 国产精品女人网站 | 国产精品免费成人 | 东方av免费在线观看 | 一区在线播放 | 高清精品久久 | 丝袜一区在线 | 国产成人91| 黄色一级免费电影 | 天天操天天艹 | 日本大片免费观看在线 | 日韩理论电影网 | 精品不卡av | 亚洲精品在线视频播放 | 免费在线一区二区 | 四虎成人精品永久免费av | 久久久久综合网 | 国产精品九九九 | 久久久网 | 激情网色| 久久女教师 | 欧美精品久久久久久久久久久 | av先锋影音少妇 | 国产精品二区在线 | 亚洲天堂网在线视频观看 | 国产免费a | 欧美午夜久久久 | 精品久久网| 9999毛片 | 激情av综合 | 国产中文字幕在线视频 | 久久人人爽人人片av | 色www. | 天天干,天天射,天天操,天天摸 | 日韩在线在线 | 免费亚洲视频在线观看 | 色婷婷狠狠18 | 国产精品区免费视频 | 国产老太婆免费交性大片 | 福利视频第一页 | 久久精品人人做人人综合老师 | 中文字幕在线影院 | 国产精品成人aaaaa网站 | 久久尤物电影视频在线观看 | 婷婷激情久久 | 黄色小说视频网站 | 久久九九国产视频 | 婷婷国产在线 | 久久久亚洲成人 | 午夜精品一区二区三区在线 | 国产精品成久久久久三级 | 久久久网址 | av色图天堂网 | 亚洲精品视频在线观看网站 | 欧美 亚洲 另类 激情 另类 | 日韩精品高清不卡 | 亚州人成在线播放 | 93久久精品日日躁夜夜躁欧美 | 五月天久久激情 | 日日日操 | 四虎在线观看精品视频 | 日批视频 | a级国产乱理伦片在线观看 亚洲3级 | 欧美午夜精品久久久久 | 亚洲国产美女精品久久久久∴ | 丁香亚洲 | 中文国产字幕 | 色婷婷 亚洲 | 久久不卡国产精品一区二区 | 最新av观看 | 精品国产成人av | av在线看片 | 欧洲高潮三级做爰 | 久久狠狠婷婷 | 97色se| 91人人澡| 国产精品一区二区免费视频 | 国产精品久久久久久影院 | 激情www| 91中文字幕网 | 亚洲日本在线视频观看 | 国产一区视频在线播放 | 国产精品专区一 | 丝袜美腿亚洲综合 | 伊人五月综合 | 中文字幕在线播放av | 一级黄网 | 色吊丝在线永久观看最新版本 | 亚洲高清av | 国产亚洲精品美女久久 | 天天操天天射天天插 | 手机看片午夜 | a视频在线 | 亚洲午夜电影网 | 四虎影视精品 | 成人wwwxxx视频 | 久久99国产精品 | 在线免费黄色av | 最新色站| 福利视频导航网址 | 欧美无极色 | 久久久精品欧美一区二区免费 | 欧美精品九九99久久 | 99九九热只有国产精品 | 国产高清免费在线观看 | 极品国产91在线网站 | 五月天欧美精品 | 亚洲永久字幕 | 日韩大片在线免费观看 | 久久99精品久久久久婷婷 | 日韩精品一区二区不卡 | 欧美一级看片 | 在线免费性生活片 | 麻豆视频大全 | 精品a视频| 韩国精品一区二区三区六区色诱 | www.天天操 | 国产黄色免费观看 | 国产 日韩 在线 亚洲 字幕 中文 | 丝袜+亚洲+另类+欧美+变态 | 免费人成网ww44kk44 | 96亚洲精品久久久蜜桃 | 欧美日视频 | 精品国产伦一区二区三区观看说明 | 国产精品黄色在线观看 | 9在线观看免费 | 久久视频国产精品免费视频在线 | 成人91在线 | 免费三级骚| 91免费视频网站在线观看 | 国产精品青草综合久久久久99 | 国产伦精品一区二区三区在线 | 国产玖玖视频 | 99精品免费久久久久久久久日本 | 中文字幕中文字幕在线中文字幕三区 | 国产成视频在线观看 | 国产精品一区二区美女视频免费看 | 亚洲欧美日本一区二区三区 |