0
雷鋒網(wǎng) AI 開發(fā)者按,馬上就是秋招啦,相信很多小伙伴現(xiàn)在都在緊張的泡圖書館備戰(zhàn)和刷題。今天,我們要給大家推薦的是一份包含了阿里巴巴、華為、百度、騰訊、美團(tuán)、字節(jié)跳動、滴滴、京東等知名互聯(lián)網(wǎng)公司技術(shù)面試題的 github 項目。截止目前,該項目已獲得 16000+ star。
項目的 github 地址為:https://github.com/0voice/interview_internal_reference
這份面試題庫共分為 20 個篇章,其中,前面 8 篇(第一部分)是以公司為區(qū)分,總結(jié)了各大互聯(lián)網(wǎng)公司的技術(shù)面試題和答案,后面部分(第二部分)是按照面試題的知識點進(jìn)行了專題總結(jié)。
在第一部分,我們不僅可以看到這些知名互聯(lián)網(wǎng)公司的面試題,還可以看到出題人和參考答案。以排在最前面的阿里巴巴為例子,我們可以看到,這里面收集了 37 個面試題。
上圖的字比較小,為了方便大家閱讀,我們把這些題目貼在下面:
阿里篇
________________________________________
1.1.1 如何實現(xiàn)一個高效的單向鏈表逆序輸出?
1.1.2 已知 sqrt(2) 約等于 1.414,要求不用數(shù)學(xué)庫,求 sqrt(2) 精確到小數(shù)點后 10 位
1.1.3 給定一個二叉搜索樹 (BST),找到樹中第 K 小的節(jié)點
1.1.4 LRU 緩存機(jī)制
1.1.5 關(guān)于 epoll 和 select 的區(qū)別,以下哪些說法是正確的
1.1.6 從 innodb 的索引結(jié)構(gòu)分析,為什么索引的 key 長度不能太長
1.1.7 MySQL 的數(shù)據(jù)如何恢復(fù)到任意時間點?
1.1.8 NFS 和 SMB 是最常見的兩種 NAS(Network Attached Storage)協(xié)議,當(dāng)把一個文件系統(tǒng)同時通過 NFS 和 SMB 協(xié)議共享給多個主機(jī)訪問時,以下哪些說法是錯誤的
1.1.9 輸入 ping IP 后敲回車,發(fā)包前會發(fā)生什么?
1.2.0 請解釋下為什么鹿晗發(fā)布戀情的時候,微博系統(tǒng)會崩潰,如何解決?
1.2.1 現(xiàn)有一批郵件需要發(fā)送給訂閱顧客,且有一個集群(集群的節(jié)點數(shù)不定,會動態(tài)擴(kuò)容縮容)來負(fù)責(zé)具體的郵件發(fā)送任務(wù),如何讓系統(tǒng)盡快地完成發(fā)送?
1.2.2 有一批氣象觀測站,現(xiàn)需要獲取這些站點的觀測數(shù)據(jù),并存儲到 Hive 中。但是氣象局只提供了 api 查詢,每次只能查詢單個觀測點。那么如果能夠方便快速地獲取到所有的觀測點的數(shù)據(jù)?
1.2.3 如何實現(xiàn)兩金額數(shù)據(jù)相加(最多小數(shù)點兩位)
1.2.4 關(guān)于并行計算的一些基礎(chǔ)開放問題
1.2.5 請計算 XILINX 公司 VU9P 芯片的算力相當(dāng)于多少 TOPS,給出計算過程與公式
1.2.6 一顆現(xiàn)代處理器,每秒大概可以執(zhí)行多少條簡單的 MOV 指令,有哪些主要的影響因素
1.2.7 請分析 MaxCompute 產(chǎn)品與分布式技術(shù)的關(guān)系、當(dāng)前大數(shù)據(jù)計算平臺類產(chǎn)品的市場現(xiàn)狀和發(fā)展趨勢
1.2.8 對大數(shù)據(jù)平臺中的元數(shù)據(jù)管理是怎么理解的,元數(shù)據(jù)收集管理體系是怎么樣的,會對大數(shù)據(jù)應(yīng)用有什么樣的影響
1.2.9 你理解常見如阿里,和友商大數(shù)據(jù)平臺的技術(shù)體系差異以及發(fā)展趨勢和技術(shù)瓶頸,在存儲和計算兩個方面進(jìn)行概述
1.3.0 在云計算大數(shù)據(jù)處理場景中,每天運(yùn)行著成千上萬的任務(wù),每個任務(wù)都要進(jìn)行 IO 讀寫。存儲系統(tǒng)為了更好的服務(wù),經(jīng)常會保證高優(yōu)先級的任務(wù)優(yōu)先執(zhí)行。當(dāng)多個作業(yè)或用戶訪問存儲系統(tǒng)時, 如何保證優(yōu)先級和公平性
1.3.1 最大頻率棧
1.3.2 給定一個鏈表,刪除鏈表的倒數(shù)第 N 個節(jié)點,并且返回鏈表的頭結(jié)點
1.3.3 如果讓你設(shè)計一個通用的、支持各種數(shù)據(jù)庫秒級備份和恢復(fù)的系統(tǒng),你會如何設(shè)計
1.3.4 如果讓你來設(shè)計一個支持?jǐn)?shù)據(jù)庫、NOSQL 和大數(shù)據(jù)之間數(shù)據(jù)實時流動的數(shù)據(jù)流及處理的系統(tǒng),你會考慮哪些問題?如何設(shè)計?
1.3.5 給定一個整數(shù)數(shù)組和一個整數(shù),返回兩個數(shù)組的索引,這兩個索引指向的數(shù)字的加和等于指定的整數(shù)。需要最優(yōu)的算法,分析算法的空間和時間復(fù)雜度
1.3.6 假如給你一個新產(chǎn)品,你將從哪些方面來保障它的質(zhì)量?
1.3.7 請評估一下程序的執(zhí)行結(jié)果?
打開這些面試題,我們可以看到出題人和參考答案。如打開第一題:「如何實現(xiàn)一個高效的單向鏈表逆序輸出?」我們看到的內(nèi)容如下:
問題:如何實現(xiàn)一個高效的單向鏈表逆序輸出?
出題人:阿里巴巴出題專家:昀龍/阿里云彈性人工智能負(fù)責(zé)人
參考答案:下面是其中一種寫法,也可以有不同的寫法,比如遞歸等。供參考。
typedef struct node{
int data;
struct node* next;
node(int d):data(d), next(NULL){}
}node;
void reverse(node* head)
{
if(NULL == head || NULL == head->next){
return;
}
node* prev=NULL;
node* pcur=head->next;
node* next;
while(pcur!=NULL){
if(pcur->next==NULL){
pcur->next=prev;
break;
}
next=pcur->next;
pcur->next=prev;
prev=pcur;
pcur=next;
}
head->next=pcur;
node*tmp=head->next;
while(tmp!=NULL){
cout<<tmp->data<<"\t";
tmp=tmp->next;
}
}
第二部分分為了 12 個技術(shù)專題,分別是 MySQL 篇、Redis 篇、MongDB 篇、Zookeeper 篇、Nginx 篇、算法篇、內(nèi)存篇、cpu 篇、磁盤篇、網(wǎng)絡(luò)通信篇、安全篇和并發(fā)篇。這里面針對每個專題,整理了一些經(jīng)常會遇到的面試題。
例如,MySQL 篇包含的題目如下:
和前面一樣,這里也給出了參考答案。打開上圖的第一個題目,我們看到如下內(nèi)容:
題目:主鍵 超鍵 候選鍵 外鍵是什么
定義
超鍵 (super key): 在關(guān)系中能唯一標(biāo)識元組的屬性集稱為關(guān)系模式的超鍵
候選鍵 (candidate key): 不含有多余屬性的超鍵稱為候選鍵。也就是在候選鍵中,若再刪除屬性,就不是鍵了!
主鍵 (primary key): 用戶選作元組標(biāo)識的一個候選鍵程序主鍵
外鍵 (foreign key):如果關(guān)系模式 R 中屬性 K 是其它模式的主鍵,那么 k 在模式 R 中稱為外鍵。
舉例
比如有如下數(shù)據(jù):
學(xué)號 | 姓名 | 性別 | 年齡 | 系別 | 專業(yè) |
20020612 | 李輝 | 男 | 20 | 計算機(jī) | 軟件開發(fā) |
20060613 | 張明 | 男 | 18 | 計算機(jī) | 軟件開發(fā) |
20060614 | 王小玉 | 女 | 19 | 物理 | 力學(xué) |
20060615 | 李淑華 | 女 | 17 | 生物 | 動物學(xué) |
20060616 | 趙靜 | 男 | 21 | 化學(xué) | 食品化學(xué) |
20060617 | 趙靜 | 女 | 20 | 生物 | 植物學(xué) |
1.超鍵
在關(guān)系中能唯一標(biāo)識元組的屬性集稱為關(guān)系模式的超鍵。
于是我們從例子中可以發(fā)現(xiàn) 學(xué)號是標(biāo)識學(xué)生實體的唯一標(biāo)識。那么該元組的超鍵就為學(xué)號。
除此之外我們還可以把它跟其他屬性組合起來,比如:
(學(xué)號,性別)
(學(xué)號,年齡)
這樣也是超鍵。
2.候選鍵
不含多余屬性的超鍵為候選鍵。
根據(jù)例子可知,學(xué)號是一個可以唯一標(biāo)識元組的唯一標(biāo)識,因此學(xué)號是一個候選鍵,實際上,候選鍵是超鍵的子集,比如(學(xué)號,年齡)是超鍵,但是它不是候選鍵。因為它還有了額外的屬性。
3.主鍵
用戶選擇的候選鍵作為該元組的唯一標(biāo)識,那么它就為主鍵。
簡單的說,例子中的元組的候選鍵為學(xué)號,但是我們選定他作為該元組的唯一標(biāo)識,那么學(xué)號就為主鍵。
4.外鍵
外鍵是相對于主鍵的,比如在學(xué)生記錄里,主鍵為學(xué)號,在成績單表中也有學(xué)號字段,因此學(xué)號為成績單表的外鍵,為學(xué)生表的主鍵。
總結(jié)
主鍵為候選鍵的子集,候選鍵為超鍵的子集,而外鍵的確定是相對于主鍵的。
雖然這只是一個非常簡單的概念題,但由此我們也可以看到,這份題庫給出的答案特別非常詳細(xì),不僅對問題中提出的概念進(jìn)行了解釋,還用具體的例子進(jìn)行了說明,方便同學(xué)們的容易理解和記憶。
還在等什么,趕快收藏這份資源開始學(xué)習(xí)吧~一分耕耘一分收獲,相信同學(xué)們接下來一定會拿到心儀的 offer,加油!
雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。