- 相關(guān)推薦
百度校園招聘筆試題精選
下面YJBYS小編為大家搜集的一篇“2016年百度校園招聘筆試題精選”,供大家參考借鑒,希望可以幫助到有需要的朋友!
一、簡答題
1. 動態(tài)鏈接庫和靜態(tài)鏈接庫的優(yōu)缺點
2. 輪詢?nèi)蝿?wù)調(diào)度和可搶占式調(diào)度有什么區(qū)別?
3. 列出數(shù)據(jù)庫中常用的鎖及其應(yīng)用場景
二、算法設(shè)計題
1. 給定N是一個正整數(shù),求比N大的最小“不重復(fù)數(shù)”,這里的不重復(fù)是指沒有兩個相等的相鄰位,如1102中的11是相等的兩個相鄰位故不是不重復(fù)數(shù),而12301是不重復(fù)數(shù),
百度校園招聘筆試題精選
。2. 設(shè)N是一個大整數(shù),求長度為N的字符串的最長回文子串。
3. 坐標軸上從左到右依次的點為a[0]、a[1]、a[2]……a[n-1],設(shè)一根木棒的長度為L,求L最多能覆蓋坐標軸的幾個點?
三、系統(tǒng)設(shè)計題
1. 在現(xiàn)代系統(tǒng)的設(shè)計過程中,為了減輕請求的壓力,通常采用緩存技術(shù),為了進一步提升緩存的命中率,同常采用分布是緩存方案。調(diào)度模塊針對不同內(nèi)容的用戶請求分配給不同的緩存服務(wù)器向用戶提供服務(wù)。請給出一個分布式緩存方案,滿足如下要求:
1) 單臺緩存服務(wù)器故障,整個分布式緩存集群,可以繼續(xù)提供服務(wù)。
2)通過一定得分配策略,可以保證充分利用每個緩存服務(wù)的存儲空間,及負載均衡。當(dāng)部分服務(wù)器故障或系統(tǒng)擴容時,改分配策略可以保證較小的緩存文件重分配開銷。
3)當(dāng)不同緩存服務(wù)器的存儲空間存在差異時,分配策略可以滿足比例分配。
下面給出我自己的一些解答,不保證100%正確,歡迎批評指正。
一、簡答題1. 動態(tài)鏈接庫和靜態(tài)鏈接庫的優(yōu)缺點
解答:(1)動態(tài)鏈接庫(Dynamic Linked Library):Windows為應(yīng)用程序提供了豐富的函數(shù)調(diào)用,這些函數(shù)調(diào)用都包含在動態(tài)鏈接庫中。其中有3個最重要的DLL,Kernel32.dll、User32.dll和GDI32.dll。有兩種使用方式:一種是靜態(tài)加載,即在應(yīng)用程序啟動時被加載;一種是動態(tài)加載,即是該動態(tài)鏈接庫在被使用時才被應(yīng)用程序加載。優(yōu)點如下:
a. 共享:多個應(yīng)用程序可以使用同一個動態(tài)庫,啟動多個應(yīng)用程序的時候,只需要將動態(tài)庫加載到內(nèi)存一次即可;
b. 開發(fā)模塊好:要求設(shè)計者對功能劃分的比較好。
缺點是不能解決引用計數(shù)等問題。
(2)靜態(tài)庫(Static Library):函數(shù)和數(shù)據(jù)被編譯進一個二進制文件(通常擴展名為.LIB)。在使用靜態(tài)庫的情況下,在編譯鏈接可執(zhí)行文件時,鏈接器從庫中復(fù)制這些函數(shù)和數(shù)據(jù)并把它們和應(yīng)用程序的其它模塊組合起來創(chuàng)建最終的可執(zhí)行文件(.EXE文件)。靜態(tài)鏈接庫作為代碼的一部分,在編譯時被鏈接。優(yōu)缺點如下:
代碼的裝載速度快,執(zhí)行速度也比較快,因為編譯時它只會把你需要的那部分鏈接進去,應(yīng)用程序相對比較大。但是如果多個應(yīng)用程序使用的話,會被裝載多次,浪費內(nèi)存。
2. 輪詢?nèi)蝿?wù)調(diào)度和可搶占式調(diào)度有什么區(qū)別?
解答:(1)輪詢調(diào)度的原理是每一次把來自用戶的請求輪流分配給內(nèi)部中的服務(wù)器,從1開始,直到N(內(nèi)部服務(wù)器個數(shù)),然后重新開始循環(huán)。只有在當(dāng)前任務(wù)主動放棄CPU控制權(quán)的情況下(比如任務(wù)掛起),才允許其他任務(wù)(包括高優(yōu)先級的任務(wù))控制CPU。其優(yōu)點是其簡潔性,它無需記錄當(dāng)前所有連接的狀態(tài),所以它是一種無狀態(tài)調(diào)度。但不利于后面的請求及時得到響應(yīng)。
(2)搶占式調(diào)度允許高優(yōu)先級的任務(wù)打斷當(dāng)前執(zhí)行的任務(wù),搶占CPU的控制權(quán)。這有利于后面的高優(yōu)先級的任務(wù)也能及時得到響應(yīng)。但實現(xiàn)相對較復(fù)雜且可能出現(xiàn)低優(yōu)先級的任務(wù)長期得不到調(diào)度。
3. 列出數(shù)據(jù)庫中常用的鎖及其應(yīng)用場景
解答:數(shù)據(jù)庫中的鎖是網(wǎng)絡(luò)數(shù)據(jù)庫中的一個非常重要的概念,它主要用于多用戶環(huán)境下保證數(shù)據(jù)庫完整性和一致性,
資料共享平臺
《百度校園招聘筆試題精選》(http://m.stanzs.com)。各種大型數(shù)據(jù)庫所采用的鎖的基本理論是一致的,但在具體實現(xiàn)上各有差別。目前,大多數(shù)數(shù)據(jù)庫管理系統(tǒng)都或多或少具有自我調(diào)節(jié)、自我管理的功能,因此很多用戶實際上不 清楚鎖的理論和所用數(shù)據(jù)庫中鎖的具體實現(xiàn)。在數(shù)據(jù)庫中加鎖時,除了可以對不同的資源加鎖,還可以使用不同程度的加鎖方式,即鎖有多種模式,SQL Server中鎖模式包括:1)共享鎖
SQL Server中,共享鎖用于所有的只讀數(shù)據(jù)操作。共享鎖是非獨占的,允許多個并發(fā)事務(wù)讀取其鎖定的資源。默認情況下,數(shù)據(jù)被讀取后,SQL Server立即釋放共享鎖。例如,執(zhí)行查詢“SELECT * FROM my_table”時,首先鎖定第一頁,讀取之后,釋放對第一頁的鎖定,然后鎖定第二頁。這樣,就允許在讀操作過程中,修改未被鎖定的第一頁。但是,事務(wù) 隔離級別連接選項設(shè)置和SELECT語句中的鎖定設(shè)置都可以改變SQL Server的這種默認設(shè)置。例如,“ SELECT * FROM my_table HOLDLOCK”就要求在整個查詢過程中,保持對表的鎖定,直到查詢完成才釋放鎖定。
2)修改鎖
修 改鎖在修改操作的初始化階段用來鎖定可能要被修改的資源,這樣可以避免使用共享鎖造成的死鎖現(xiàn)象。因為使用共享鎖時,修改數(shù)據(jù)的操作分為兩步,首先獲得一 個共享鎖,讀取數(shù)據(jù),然后將共享鎖升級為獨占鎖,然后再執(zhí)行修改操作。這樣如果同時有兩個或多個事務(wù)同時對一個事務(wù)申請了共享鎖,在修改數(shù)據(jù)的時候,這些 事務(wù)都要將共享鎖升級為獨占鎖。這時,這些事務(wù)都不會釋放共享鎖而是一直等待對方釋放,這樣就造成了死鎖。如果一個數(shù)據(jù)在修改前直接申請修改鎖,在數(shù)據(jù)修 改的時候再升級為獨占鎖,就可以避免死鎖。修改鎖與共享鎖是兼容的,也就是說一個資源用共享鎖鎖定后,允許再用修改鎖鎖定。
3)獨占鎖
獨占鎖是為修改數(shù)據(jù)而保留的。它所鎖定的資源,其他事務(wù)不能讀取也不能修改。獨占鎖不能和其他鎖兼容。
4)結(jié)構(gòu)鎖
結(jié)構(gòu)鎖分為結(jié)構(gòu)修改鎖(Sch-M)和結(jié)構(gòu)穩(wěn)定鎖(Sch-S)。執(zhí)行表定義語言操作時,SQL Server采用Sch-M鎖,編譯查詢時,SQL Server采用Sch-S鎖。
5)意向鎖
意 向鎖說明SQL Server有在資源的低層獲得共享鎖或獨占鎖的意向。例如,表級的共享意向鎖說明事務(wù)意圖將獨占鎖釋放到表中的頁或者行。意向鎖又可以分為共享意向鎖、 獨占意向鎖和共享式獨占意向鎖。共享意向鎖說明事務(wù)意圖在共享意向鎖所鎖定的低層資源上放置共享鎖來讀取數(shù)據(jù)。獨占意向鎖說明事務(wù)意圖在共享意向鎖所鎖定 的低層資源上放置獨占鎖來修改數(shù)據(jù)。共享式獨占鎖說明事務(wù)允許其他事務(wù)使用共享鎖來讀取頂層資源,并意圖在該資源低層上放置獨占鎖。
6)批量修改鎖
批量復(fù)制數(shù)據(jù)時使用批量修改鎖。可以通過表的TabLock提示或者使用系統(tǒng)存儲過程sp_tableoption的“table lock on bulk load”選項設(shè)定批量修改鎖。
二、算法設(shè)計題1. 給定N是一個正整數(shù),求比N大的最小“不重復(fù)數(shù)”,這里的不重復(fù)是指沒有兩個相等的相鄰位,如1102中的11是相等的兩個相鄰位故不是不重復(fù)數(shù),而12301是不重復(fù)數(shù)。
算法思想:當(dāng)然最直接的方法是采用暴力法,從N+1開始逐步加1判斷是否是不重復(fù)數(shù),是就退出循環(huán)輸出,這種方法一般是不可取的,例如N=11000000,你要一個個的加1要加到12010101,一共循環(huán)百萬次,每次都要重復(fù)判斷是否是不重復(fù)數(shù),效率極其低下,因此是不可取的。這里我采用的方法是:從N+1的最高位往右開始判斷與其次高位是否相等,如果發(fā)現(xiàn)相等的(即為重復(fù)數(shù))則將次高位加1,注意這里可能進位,如8921―>9021,后面的直接置為010101...形式,如1121―>1201,此時便完成“不重復(fù)數(shù)”的初步構(gòu)造,但此時的“不重復(fù)數(shù)”不一定是真正的不重復(fù)的數(shù),因為可能進位后的次高位變?yōu)?或進位后變成00,如9921―>10001,此時需要再次循環(huán)判斷重新構(gòu)造直至滿足條件即可,這種方法循環(huán)的次數(shù)非常少,我認為不超過3次就能滿足條件。
【百度校園招聘筆試題】相關(guān)文章:
海康威視校園招聘筆試題05-30
招聘官揭秘校園招聘中必問的七類面試題11-10
客服專員招聘筆試題目09-29
鵬華基金招聘筆試題09-29
招商銀行太原分行招聘筆試題03-13
今年校園招聘謹防三一集團03-13
百度腦筋急轉(zhuǎn)彎大全12-24
遠離“招聘陷阱”11-17
判斷筆試題03-13
強生筆試題03-13