閱讀屋>筆試> 百度校園招聘筆試題

百度校園招聘筆試題

百度校園招聘筆試題

  一:簡答題(30)

  1:資料庫以及執行緒發生死鎖的原理及必要條件,如何避免死鎖(作業系統書上有)

  2:面向物件的三個基本元素,五個基本原則(繼承,封裝,多型,基本原則沒答上)

  3:windows記憶體管理的機制以及優缺點(分頁,分段,虛擬記憶體管理....)

  二:程式設計題(40)

  1:公司裡面有1001個員工,現在要在公司裡面找到最好的羽毛球選手,也就是第一名,每個人都必須參賽,問至少要比賽多少次才能夠找到最好的羽毛球員工。(含虛擬碼)--------(個人覺得,兩兩比賽,分成500組剩下一人,類似於歸併排序的方式,比出冠軍後,讓冠軍之間再比,主要是要想想多餘的那一個選手如何處理,必然要在第一次決出冠軍後加入比賽組)

  2:現在有100個燈泡,每個燈泡都是關著的,第一趟把所有的燈泡燈泡開啟,第二趟把偶數位的燈泡製反(也就是開了的關掉,關了的開啟),第三趟讓第3,6,9....的燈泡製反.......第100趟讓第100個燈泡製反,問經過一百趟以後有多少燈泡亮著-----(覺得這個應該是最好做的程式設計題了,首先定義一個數組vist[100],初始化為0,我們假設已經達到第i個燈泡了,要判斷第i個燈泡最後是開著還是滅了的,要要知道它被開關了多少次用temp存放,也就是說是偶數還是奇數,偶數顯然最後是關著的,奇數則開著,讓i除以比它小的數字,如果餘數為0就躺temp++,最後再根據temp的值確定vist[i是0還是1,最後掃描整個vist陣列)

  3:有20個數組,每個陣列有500個元素,並且是有序排列好的,現在在這20*500個數中找出排名前500的數(可以用歸併排序,最後找到500個元素的值,也可以這樣首先找到每個陣列的最大值和最小值,然後存放在一個結構體裡面,如果一個數組裡面的最小值大於某一個數組的最大值,那麼某一個數組就被kill掉,然後提取剩餘陣列的最大值----當然每個陣列的元素放生變化了,因為每次提取走了最大值,然後改變結構體裡面的.最大值和最小值,重複以上操作,直到找到前五百個數)

  三:系統設計題(30)

  現在有一個手機,手機上的鍵盤上有這樣的對應關係,2對應"abc",3對應"def".....手機裡面有一個userlist使用者列表,當我們輸入942的時候出來拼音的對應可能是“xia”,“zha”,“xi”,“yi”等,當我們輸入9264的時候出來是yang,可能是“樣”,“楊”,“往”等,現在我們輸入一個字串數字,比如926等,要在電話簿userlist中查找出對應的使用者名稱和電話號碼並返回結果。---------(個人覺得用雜湊表來查詢,並用連結串列來處理衝突,如a[2]依次對應abc,可以在匹配字元的時候定義一個*P)[4]的指標,每個指標指向最多四個char型別的字串,並且用遍歷的方式依次匹配)


【百度校園招聘筆試題】相關文章: