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

1.1 判斷一個(gè)字符串中的字符是否唯一

1.2 字符串翻轉(zhuǎn)

1.3 去除字符串中重復(fù)字符

1.8 利用已知函數(shù)判斷字符串是否為另一字符串的子串

2.1 從鏈表中移除重復(fù)結(jié)點(diǎn)

2.2 實(shí)現(xiàn)一個(gè)算法從一個(gè)單鏈表中返回倒數(shù)第n個(gè)元素

2.3 給定鏈表中間某結(jié)點(diǎn)指針,刪除鏈表中該結(jié)點(diǎn)

2.4 求由兩個(gè)鏈表結(jié)點(diǎn)組成的數(shù)之和

2.5 給定一個(gè)循環(huán)鏈表,實(shí)現(xiàn)一個(gè)算法返回這個(gè)環(huán)的開始結(jié)點(diǎn)

3.1 如何只用一個(gè)數(shù)組實(shí)現(xiàn)三個(gè)棧

3.2 實(shí)現(xiàn)一個(gè)棧,要求實(shí)現(xiàn)min函數(shù)以返回棧中的最小值

3.3 實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)SetOfStacks來(lái)模擬疊盤子

3.4 編程解決漢諾塔問(wèn)題

3.5 使用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列

3.6 寫程序?qū)⒁粋€(gè)棧按升序排序

4.1 用一個(gè)函數(shù)判斷一棵樹是否平衡

4.2 設(shè)計(jì)算法判斷有向圖兩結(jié)點(diǎn)間是否存在路徑

4.3 將遞增數(shù)組構(gòu)建成一顆最小高度二叉樹

4.4 將二叉樹每一層結(jié)點(diǎn)構(gòu)建成一個(gè)鏈表

4.5 查找二叉查找樹的任意給定結(jié)點(diǎn)的“下一個(gè)”結(jié)點(diǎn)

4.6 找出一棵二叉樹中兩個(gè)結(jié)點(diǎn)的第一個(gè)共同祖先結(jié)點(diǎn)

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

4.8 輸出二叉樹中路徑上結(jié)點(diǎn)值之和為給定值的所有路徑

5.1 寫程序使整數(shù)N中第i位到第j位的值與整數(shù)M中的相同

5.2 給定一個(gè)字符串類型表示的小數(shù),輸出其二進(jìn)制表示

5.3 給定一個(gè)整數(shù)x,找出另外兩個(gè)二進(jìn)制表示中1的個(gè)數(shù)和x相同的數(shù)

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

5.5 寫程序計(jì)算從整數(shù)A變?yōu)檎麛?shù)B需要修改的二進(jìn)制位數(shù)

5.6 交換一個(gè)整數(shù)二進(jìn)制表示中的奇數(shù)位和偶數(shù)位

5.7 寫程序找出丟失的整數(shù),要求時(shí)間復(fù)雜度O(n)

6.1-6.6 程序員”腦筋急轉(zhuǎn)彎”

7.1 為通用卡牌游戲設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),并設(shè)計(jì)子類

7.2 為電話呼叫中心設(shè)計(jì)類和數(shù)據(jù)結(jié)構(gòu)

7.3 用面向?qū)ο蟮姆椒ㄔO(shè)計(jì)一個(gè)音樂(lè)播放機(jī)

7.4 用面向?qū)ο笏枷朐O(shè)計(jì)一個(gè)國(guó)際象棋游戲

7.5 利用OOP思想設(shè)計(jì)在線讀書系統(tǒng)

7.6 設(shè)計(jì)一個(gè)拼圖游戲的數(shù)據(jù)結(jié)構(gòu)

7.7 如何設(shè)計(jì)一個(gè)聊天服務(wù)程序

7.8 用面向?qū)ο笏枷朐O(shè)計(jì)奧賽羅游戲(Othello)

7.9 為一個(gè)內(nèi)存文件系統(tǒng)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和算法

7.10 使用C++實(shí)現(xiàn)一個(gè)垃圾回收器

8.1 寫一個(gè)函數(shù)來(lái)產(chǎn)生第n個(gè)斐波那契數(shù)

8.2 機(jī)器人路徑計(jì)算

8.3 寫一個(gè)函數(shù)返回一個(gè)集合中的所有子集

8.4 寫一個(gè)函數(shù)返回一個(gè)串的所有排列

8.5 實(shí)現(xiàn)一個(gè)算法打印出n對(duì)括號(hào)的有效組合

8.6 實(shí)現(xiàn)圖像處理軟件中的“填充”函數(shù)

8.7 有25分,10分,5分和1分的硬幣無(wú)限個(gè),計(jì)算組成n分的組合數(shù)

8.8 經(jīng)典八皇后問(wèn)題

9.1 寫一個(gè)函數(shù)將數(shù)組B融入數(shù)組A,并使其有序

9.2 寫一個(gè)函數(shù)對(duì)字符串?dāng)?shù)組排序,使所有變位詞都相鄰

9.3 在一個(gè)數(shù)字中查找特定元素

9.4 如何給一個(gè)2G文件中的字符串排序?

9.5 寫一個(gè)函數(shù)找到給定字符串的位置

9.6 在一個(gè)矩陣中找出特定的數(shù)

9.7 寫一個(gè)函數(shù)模擬疊羅漢節(jié)目

10.1-10.7 程序員面試——數(shù)學(xué)相關(guān)題目

11.1-11.6 程序員面試—測(cè)試相關(guān)題目

12.1 股價(jià)信息摘要整合方案

12.2 如何為社交網(wǎng)站(如facebook,新浪微博)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)

12.3 在40億個(gè)整數(shù)值中查找特定數(shù)據(jù)

12.4 數(shù)組去重(限制內(nèi)存為4kb)

12.5 如果讓你設(shè)計(jì)一個(gè)網(wǎng)絡(luò)爬蟲,你怎么避免陷入無(wú)限循環(huán)?

12.6 10億個(gè)url,每個(gè)url對(duì)應(yīng)一個(gè)網(wǎng)頁(yè),如何檢測(cè)重復(fù)的網(wǎng)頁(yè)?

12.7 如何設(shè)計(jì)一個(gè)支持TB級(jí)別數(shù)據(jù)的數(shù)據(jù)庫(kù)

13.1 用C++寫一個(gè)函數(shù),輸出文件的最后k行。

13.2 淺析哈希表和STL map

13.3 C++中的虛函數(shù)是如何工作的?

13.4 深拷貝和淺拷貝有什么區(qū)別,如何使用?

13.5 C語(yǔ)言關(guān)鍵字”volatile”的作用?

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

13.7 為什么基類中的析構(gòu)函數(shù)要聲明為虛析構(gòu)函數(shù)?

13.8 寫一個(gè)函數(shù),返回傳入數(shù)據(jù)結(jié)構(gòu)的一份完全拷貝

13.9 寫一個(gè)智能指針類(smart_ptr)

15.1 寫一條SQL語(yǔ)句找到每個(gè)部門員工的數(shù)量

15.2 SQL的連接有哪些不同的類型?并解釋其異同點(diǎn)

15.3 什么是反范式?它的優(yōu)缺點(diǎn)是什么?

15.4 畫一個(gè)數(shù)據(jù)庫(kù)的(ER圖),實(shí)體包括:公司、人、 專業(yè)人士

15.5 寫SQL查詢語(yǔ)句查詢成績(jī)排名前10%的學(xué)生

16.1 解釋術(shù)語(yǔ):虛擬內(nèi)存、缺頁(yè)中斷、抖動(dòng)

16.5 寫程序判斷一臺(tái)機(jī)器是大端序還是小端序

16.10 寫一個(gè)名為my2DAlloc的函數(shù),用它開辟一個(gè)二維數(shù)組

17.1 解釋一下,在你往瀏覽器中輸入一個(gè)URL后都發(fā)生了什么,要盡可能詳細(xì)

17.2 介紹常用路由協(xié)議。例如:BGP,OSPF,RIP

17.4 網(wǎng)絡(luò)/子網(wǎng)掩碼是什么?網(wǎng)絡(luò)路由是什么?

17.3 比較IPv4和IPv6協(xié)議

17.5 TCP和UDP之間有什么區(qū)別?

進(jìn)程與線程的一個(gè)簡(jiǎn)單解釋

18.1 線程和進(jìn)程的區(qū)別是什么?

18.1 線程和進(jìn)程的區(qū)別是什么?

18.2 你如何測(cè)量一次上下文切換所需時(shí)間?

18.3 實(shí)現(xiàn)一個(gè)單例模式的模板

18.5 線程調(diào)度

19.1 不能使用臨時(shí)變量,交換兩個(gè)數(shù)

19.2 設(shè)計(jì)算法檢查某人是否贏得了井字游戲

19.3 寫一個(gè)算法計(jì)算n的階乘末尾0的個(gè)數(shù)

19.4 你使用if-else及任何比較操作符,返回兩個(gè)數(shù)中的較大者

19.5 寫一個(gè)函數(shù)來(lái)模擬游戲

19.7 求最大連續(xù)子序列和

19.8 統(tǒng)計(jì)給定單詞在一本書中出現(xiàn)的次數(shù)

19.10 給定一個(gè)能生成1到5隨機(jī)數(shù)的函數(shù),如何利用它來(lái)生成1到7的隨機(jī)數(shù)。

19.11 設(shè)計(jì)一個(gè)算法,找到數(shù)組中所有和為指定值的整數(shù)對(duì)

20.1 不能使用+號(hào)或其它算術(shù)運(yùn)算符求兩個(gè)數(shù)的和

20.2 寫一個(gè)隨機(jī)洗牌函數(shù)

20.3 寫一個(gè)函數(shù),隨機(jī)地從大小為n的數(shù)組中選取m個(gè)整數(shù)

20.4 寫一個(gè)函數(shù),計(jì)算0到n之間2的個(gè)數(shù)。

20.5 給出兩個(gè)單詞,找到它們的最短距離

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容