谷歌面試官經典作品(CTCI)目錄

yangxi_001發表於2014-06-17

1.1 判斷一個字串中的字元是否唯一

1.2 字串翻轉

1.3 去除字串中重複字元

1.8 利用已知函式判斷字串是否為另一字串的子串

2.1 從連結串列中移除重複結點

2.2 實現一個演算法從一個單連結串列中返回倒數第n個元素

2.3 給定連結串列中間某結點指標,刪除連結串列中該結點

2.4 求由兩個連結串列結點組成的數之和

2.5 給定一個迴圈連結串列,實現一個演算法返回這個環的開始結點

3.1 如何只用一個陣列實現三個棧

3.2 實現一個棧,要求實現min函式以返回棧中的最小值

3.3 實現資料結構SetOfStacks來模擬疊盤子

3.4 程式設計解決漢諾塔問題

3.5 使用兩個棧實現一個佇列

3.6 寫程式將一個棧按升序排序

4.1 用一個函式判斷一棵樹是否平衡

4.2 設計演算法判斷有向圖兩結點間是否存在路徑

4.3 將遞增陣列構建成一顆最小高度二叉樹

4.4 將二叉樹每一層結點構建成一個連結串列

4.5 查詢二叉查詢樹的任意給定結點的“下一個”結點

4.6 找出一棵二叉樹中兩個結點的第一個共同祖先結點

4.7 判斷一棵二叉樹是否為另一棵二叉樹的子樹

4.8 輸出二叉樹中路徑上結點值之和為給定值的所有路徑

5.1 寫程式使整數N中第i位到第j位的值與整數M中的相同

5.2 給定一個字串型別表示的小數,輸出其二進位制表示

5.3 給定一個整數x,找出另外兩個二進位制表示中1的個數和x相同的數

5.4 解釋以下程式碼的作用:((n & (n-1)) == 0)

5.5 寫程式計算從整數A變為整數B需要修改的二進位制位數

5.6 交換一個整數二進位制表示中的奇數位和偶數位

5.7 寫程式找出丟失的整數,要求時間複雜度O(n)

6.1-6.6 程式設計師”腦筋急轉彎”

7.1 為通用卡牌遊戲設計資料結構,並設計子類

7.2 為電話呼叫中心設計類和資料結構

7.3 用物件導向的方法設計一個音樂播放機

7.4 用物件導向思想設計一個國際象棋遊戲

7.5 利用OOP思想設計線上讀書系統

7.6 設計一個拼圖遊戲的資料結構

7.7 如何設計一個聊天服務程式

7.8 用物件導向思想設計奧賽羅遊戲(Othello)

7.9 為一個記憶體檔案系統設計資料結構和演算法

7.10 使用C++實現一個垃圾回收器

8.1 寫一個函式來產生第n個斐波那契數

8.2 機器人路徑計算

8.3 寫一個函式返回一個集合中的所有子集

8.4 寫一個函式返回一個串的所有排列

8.5 實現一個演算法列印出n對括號的有效組合

8.6 實現影象處理軟體中的“填充”函式

8.7 有25分,10分,5分和1分的硬幣無限個,計算組成n分的組合數

8.8 經典八皇后問題

9.1 寫一個函式將陣列B融入陣列A,並使其有序

9.2 寫一個函式對字串陣列排序,使所有變位詞都相鄰

9.3 在一個數字中查詢特定元素

9.4 如何給一個2G檔案中的字串排序?

9.5 寫一個函式找到給定字串的位置

9.6 在一個矩陣中找出特定的數

9.7 寫一個函式模擬疊羅漢節目

10.1-10.7 程式設計師面試——數學相關題目

11.1-11.6 程式設計師面試—測試相關題目

12.1 股價資訊摘要整合方案

12.2 如何為社交網站(如facebook,新浪微博)設計資料結構

12.3 在40億個整數值中查詢特定資料

12.4 陣列去重(限制記憶體為4kb)

12.5 如果讓你設計一個網路爬蟲,你怎麼避免陷入無限迴圈?

12.6 10億個url,每個url對應一個網頁,如何檢測重複的網頁?

12.7 如何設計一個支援TB級別資料的資料庫

13.1 用C++寫一個函式,輸出檔案的最後k行。

13.2 淺析雜湊表和STL map

13.3 C++中的虛擬函式是如何工作的?

13.4 深拷貝和淺拷貝有什麼區別,如何使用?

13.5 C語言關鍵字”volatile”的作用?

13.6 C++中名字隱藏是指什麼?

13.7 為什麼基類中的解構函式要宣告為虛解構函式?

13.8 寫一個函式,返回傳入資料結構的一份完全拷貝

13.9 寫一個智慧指標類(smart_ptr)

15.1 寫一條SQL語句找到每個部門員工的數量

15.2 SQL的連線有哪些不同的型別?並解釋其異同點

15.3 什麼是反正規化?它的優缺點是什麼?

15.4 畫一個資料庫的(ER圖),實體包括:公司、人、 專業人士

15.5 寫SQL查詢語句查詢成績排名前10%的學生


相關文章