爲何百度校招數據挖掘工程師的筆試題目是跟數據挖掘關係不大? - 研究生生活交流 - 王道論壇,專一於計算機考研的點點滴滴! http://www.cskaoyan.com/thread-244995-1-3.htmlhtml
筆試時間:2014-9-20
筆試職位:機器學習/數據挖掘工程師
筆試城市:天津、深圳、南京等
一. 簡答題
1. new 和 malloc 的區別。
2. hash衝突是指什麼?怎麼解決?給兩種方法,寫出過程和優缺點。
3. 命中的機率是 0.25,若要至少命中一次的機率不小於 0.75,則至少須要幾回?
二. 算法設計題
1. 用C/C++寫一個歸併排序。
數據結構爲struct Node{int v; Node *next};
接口爲 Node * merge_sort(Node *);
2. 設計S型層次遍歷樹的算法,好比根節點是第一層,第二層從左至右遍歷,第三層從右至左遍歷,第四層再從左至右遍歷,以此類推。
舉例:應依次輸出 1 2 3 6 5 4 7 8 9。
3. 一個url文件,每行是一個url地址,可能有重複。
(1)統計每一個url的頻次,設計函數實現實現。
(2)設有10億url,平均長度是20,如今機器有8G內存,怎麼處理,寫出思路。
三. 系統設計題
天然語言處理中的中文分詞問題,前向最大匹配算法(FMM)。
注:題目舉例說明了FMM的基本思想。
(1)設計字典的數據結構 struct dictnote。
(2)用C/C++實現FMM,可選接口爲
int FMM(vector iLetters, dictnode *iRoot, vector *oResults);
其中 iLetters 爲待分詞的句子,好比 {「小」,「明」,「今」,「天」,「買」,「了」,「i」,「p」,「o」,「n」,「e」,「6」},
iRoot 是字典, oResults 保存輸出結果,即分詞的位置。也能夠本身設計接口。
(3)收集了一些手機品牌的字典,如{iphone, 諾基亞}。
如今要求查找包含這些手機品牌的網頁,好比包含 iphone6, 諾基亞 9973 等。
怎麼修改FMM實現這個功能,能夠寫僞代碼。java
研究生期間應該怎麼過 - 研究生生活交流 - 王道論壇,專一於計算機考研的點點滴滴! http://www.cskaoyan.com/thread-241882-1-3.htmlnode
指點算不上啊,一塊兒交流。我的以爲,技術分兩方面。一個是DS與算法,一個是工程方面的。前者,好的公司,面試很是注重,不少都是ACM、或者編程之美上的題目,考察解決問題的能力。固然還有一些其餘專業課的基礎,後者主要指,你具體掌握了哪些語言,能作什麼項目,語言框架等等,還有軟工一些基礎,文檔編寫啥的。python
【面試總結】騰訊MIG一面 - CSDN博客 https://blog.csdn.net/woxiaohahaa/article/details/52176211#commentsmysql
2014.3.29阿里實習筆試 - hzhtracy - 博客園 https://www.cnblogs.com/hzhtracy/p/4419374.htmllinux
數據挖掘10大算法及詳解 - William Zhao's notes - CSDN博客 https://blog.csdn.net/yimingsilence/article/details/53164897nginx
@git
SVM程序員
在超平面上的樣本點也稱爲支持向量.golang
針對同一個訓練集訓練不一樣的分類器(弱分類器),而後把這些弱分類器集合起來,構成一個更強的最終分類器 (強分類器)
KNN
若是一個樣本在特徵空間中的k個最類似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別
樸素貝葉斯
樸素貝葉斯分類器基於一個簡單的假定:給定目標值時屬性之間相互條件獨立。換言之。該假定說明給定實力的目標值狀況下。觀察到聯合的a1,a2...an的機率正好是對每一個單獨屬性的機率乘積
@
1. C4.5
C4.5算法是機器學習算法中的一種分類決策樹算法,其核心算法是ID3算法. C4.5算法繼承了ID3算法的優勢,並在如下幾方面對ID3算法進行了改進:
1) 用信息增益率來選擇屬性,克服了用信息增益選擇屬性時偏向選擇取值多的屬性的不足;
2) 在樹構造過程當中進行剪枝;
3) 可以完成對連續屬性的離散化處理;
4) 可以對不完整數據進行處理。
C4.5算法有以下優勢:產生的分類規則易於理解,準確率較高。其缺點是:在構造樹的過程當中,須要對數據集進行屢次的順序掃描和排序,於是致使算法的低效。
2. The k-meansalgorithm即K-Means算法
k-means algorithm算法是一個聚類算法,把n的對象根據他們的屬性分爲k個分割,k < n。它與處理混合正態分佈的最大指望算法很類似,由於他們都試圖找到數據中天然聚類的中心。它假設對象屬性來自於空間向量,而且目標是使各個羣組內部的均方偏差總和最小。
3. Supportvector machines
支持向量機,英文爲Support Vector Machine,簡稱SV機(論文中通常簡稱SVM)。它是一種監督式學習的方法,它普遍的應用於統計分類以及迴歸分析中。支持向量機將向量映射到一個更高維的空間裏,在這個空間裏創建有一個最大間隔超平面。在分開數據的超平面的兩邊建有兩個互相平行的超平面。分隔超平面使兩個平行超平面的距離最大化。假定平行超平面間的距離或差距越大,分類器的總偏差越小。一個極好的指南是C.J.C Burges的《模式識別支持向量機指南》。van der Walt 和 Barnard 將支持向量機和其餘分類器進行了比較。
4. The Apriorialgorithm
Apriori算法是一種最有影響的挖掘布爾關聯規則頻繁項集的算法。其核心是基於兩階段頻集思想的遞推算法。該關聯規則在分類上屬於單維、單層、布爾關聯規則。在這裏,全部支持度大於最小支持度的項集稱爲頻繁項集,簡稱頻集。
5. 最大指望(EM)算法
在統計計算中,最大指望(EM,Expectation–Maximization)算法是在機率(probabilistic)模型中尋找參數最大似然估計的算法,其中機率模型依賴於沒法觀測的隱藏變量(LatentVariabl)。最大指望常常用在機器學習和計算機視覺的數據集聚(DataClustering)領域。
6. PageRank
PageRank是Google算法的重要內容。2001年9月被授予美國專利,專利人是Google創始人之一拉里·佩奇(Larry Page)。所以,PageRank裏的page不是指網頁,而是指佩奇,即這個等級方法是以佩奇來命名的。
PageRank根據網站的外部連接和內部連接的數量和質量倆衡量網站的價值。PageRank背後的概念是,每一個到頁面的連接都是對該頁面的一次投票,被連接的越多,就意味着被其餘網站投票越多。這個就是所謂的「連接流行度」——衡量多少人願意將他們的網站和你的網站掛鉤。PageRank這個概念引自學術中一篇論文的被引述的頻度——即被別人引述的次數越多,通常判斷這篇論文的權威性就越高。
7. AdaBoost
Adaboost是一種迭代算法,其核心思想是針對同一個訓練集訓練不一樣的分類器(弱分類器),而後把這些弱分類器集合起來,構成一個更強的最終分類器 (強分類器)。其算法自己是經過改變數據分佈來實現的,它根據每次訓練集之中每一個樣本的分類是否正確,以及上次的整體分類的準確率,來肯定每一個樣本的權值。將修改過權值的新數據集送給下層分類器進行訓練,最後將每次訓練獲得的分類器最後融合起來,做爲最後的決策分類器。
8. kNN:k-nearest neighbor classification
K最近鄰(k-Nearest Neighbor,KNN)分類算法,是一個理論上比較成熟的方法,也是最簡單的機器學習算法之一。該方法的思路是:若是一個樣本在特徵空間中的k個最類似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別。
9. Naive Bayes
在衆多的分類模型中,應用最爲普遍的兩種分類模型是決策樹模型(DecisionTree Model)和樸素貝葉斯模型(NaiveBayesian Model,NBC)。樸素貝葉斯模型發源於古典數學理論,有着堅實的數學基礎,以及穩定的分類效率。同時,NBC模型所需估計的參數不多,對缺失數據不太敏感,算法也比較簡單。理論上,NBC模型與其餘分類方法相比具備最小的偏差率。可是實際上並不是老是如此,這是由於NBC模型假設屬性之間相互獨立,這個假設在實際應用中每每是不成立的,這給NBC模型的正確分類帶來了必定影響。在屬性個數比較多或者屬性之間相關性較大時,NBC模型的分類效率比不上決策樹模型。而在屬性相關性較小時,NBC模型的性能最爲良好。
10. CART: 分類與迴歸樹
CART, Classification and Regression Trees。在分類樹下面有兩個關鍵的思想。第一個是關於遞歸地劃分自變量空間的想法;第二個想法是用驗證數據進行剪枝。
InfoQ https://mp.weixin.qq.com/s/oMYINGLQ93L7jWc-i08HEw
100+經典Java面試題及答案解析 - _eve - 博客園 https://www.cnblogs.com/pureEve/p/6546280.html
@
重寫(Override) 哺乳動物叫 狗叫
重載(Overload) 狗白天吃東西時叫 狗沒吃東西時叫
避免死鎖
使用多線程的時候,一種很是簡單的避免死鎖的方式就是:指定獲取鎖的順序,並強制線程按照指定的順序獲取鎖。所以,若是全部的線程都是以一樣的順序加鎖和釋放鎖,就不會出現死鎖了。
Array能夠包含基本類型和對象類型,ArrayList只能包含對象類型。
Array大小是固定的,ArrayList的大小是動態變化的。
ArrayList和LinkedList都實現了List接口
ArrayList是基於索引的數據接口,它的底層是數組。它能夠以O(1)時間複雜度對元素進行隨機訪問。
LinkedList是以元素列表的形式存儲它的數據,每個元素都和它的前一個和後一個元素連接在一塊兒,在這種狀況下,查找某個元素的時間複雜度是O(n)。
@
LeetCode領釦 https://mp.weixin.qq.com/s/0W7-wAwonXLtV4D0uQBuxQ
面試題思考:Stack和Heap的區別 - CSDN博客 https://blog.csdn.net/u014306011/article/details/51044091
哥們別逗 了,寫個腳本那真不叫運維自動化!-alex3714-51CTO博客 http://blog.51cto.com/3060674/1590803
https://tech.meituan.com/2018/10/18/meishi-data-flink.html
https://mp.weixin.qq.com/s/ICHzi70ygAzKllc-xUKEcg
Python 是一種解釋型,交互式,面向對象的高級編程語言。和別的一些使用標點符號的語言不一樣,Python使用了大量的英語單詞做爲關鍵字,於是具備很好的可讀性。並且跟其餘編程語言相比,它有更少的語法結構。Python 是一種解釋性語言:這意味着你的程序在執行以前不須要編譯,而是由解釋器在運行時處理。這個特色跟PERL,PHP很像。
Python很是適合編程初級人員:Python很是容易入門並且應用領域也很是普遍,從簡單的文字處理到網絡瀏覽和遊戲開發。
1) 什麼是Python?使用Python有什麼好處?
Python是一種編程語言,它有對象,模塊,線程,異常處理和自動內存管理。它簡潔,簡單,方便,容易擴展,有許多自帶的數據結構,並且它開源。
2) 什麼是PEP8?
PEP8 是一個編程規範,一些關於如何讓你的程序更具備可讀性的建議。
3) 什麼是pickling和unpickling?
Pickle模塊讀入任何Python對象,將它們轉換成字符串,而後使用dump函數將其轉儲到一個文件中——這個過程叫作pickling。反之從存儲的字符串文件中提取原始Python對象的過程叫作unpickling。
4) Python 是如何被解釋的?
Python是一種解釋性語言。Python的源代碼能夠直接運行。Python解釋器會將源代碼轉換成中間語言,以後再翻譯成機器碼再執行。
5) Python是怎樣管理內存的?
Python的內存管理是由私有heap空間管理的。全部的Python對象和數據結構都在一個私有heap中。程序員沒有訪問該heap的權限,只有解釋器才能對它進行操做。
爲Python的heap空間分配內存是由Python的內存管理模塊進行的。其核心API提供一些訪問該模塊的方法供程序員使用。
Python有自帶的垃圾回收系統,它回收並釋放沒有被使用的內存讓它們可以被其餘程序使用。
6) 有哪些工具能夠幫助debug或作靜態分析?
PyChecker 是一個靜態分析工具,它報告源代碼中的錯誤而且會報告錯誤類型和複雜度。Pylint是檢驗模塊是否達到代碼標準的另外一個工具。
7) 什麼是Python裝飾器?
Python裝飾器是Python中的特有變更,可使修改函數變得更容易。
8) 數組和元組之間的區別是什麼?
數組和元組之間的區別是數組內容是能夠被修改的而元組內容是隻讀的。元組能夠被哈希好比做爲字典的關鍵字。
9) 參數按值傳遞和引用傳遞是怎樣實現的?
Python中的一切都是類,全部的變量都是一個對象的引用。引用的值是由函數肯定的,所以沒法被改變。可是若是一個對象是能夠被修改的你能夠改動對象。
10) 字典推導式和列表推導式是什麼?
他們是能夠輕鬆建立字典和列表的語法結構。
11) Python都有那些自帶的數據結構?
Python自帶的數據結構分爲可變的和不可變的。
可變的有:數組、集合、字典
不可變的有:字符串、元組、數
12) 什麼是Python的命名空間?
在 Python 中,全部的名字都存在於一個空間中,它們在該空間中存在和被操做——這就是命名空間。它就好像一個盒子,每個變量名字都對應裝着一個對象。當查詢變量的時候,會從該盒子裏面尋找相應的對象。
13) Python 中的lambda 是什麼?
這是一個常被用於代碼中的單個表達式的匿名函數。
14) 爲何 lambda 沒有語句?
匿名函數lambda沒有語句的緣由是它被用於在代碼被執行的時候構建新的函數對象而且返回。
15) Python中的pass是什麼?
Pass是一個在Python中不會被執行的語句。在複雜語句中,若是一個地方須要暫時被留白,它經常被用於佔位符。
16) Python中什麼是遍歷器?
遍歷器用於遍歷一組元素,好比列表這樣的容器。
17) Python中的unittest是什麼?
在Python中,unittest是Python中的單元測試框架。它支持共享搭建,自動測試,在測試中暫停代碼,將不一樣測試迭代成一組等等功能。
18) 在Python中什麼是slicing?
Slicing是一種在有序的對象類型中(數組,元組,字符串)節選某一段的語法。
19)在Python中什麼是生成器?
生成器是實現迭代器的一種機制。它功能的實現依賴於yield表達式,除此以外它跟普通的函數沒有兩樣。
20) Python 中docstring什麼?
在 Python 中文檔字符串被稱爲docstring,它被用於在Python中爲函數,模塊和類註釋生成文檔。
21) 在Python中如何拷貝一個對象?
若是要在Python中拷貝一個對象,大多時候你能夠用copy.copy () 或者copy.deepcopy()。並非全部的對象均可以被拷貝。
22) Python中的負索引是什麼?
Python中的序列索引能夠是正也能夠是負。若是是正索引,0是序列中的第一個索引,1是第二個索引。若是是負索引,(-1)是最後一個索引而(-2)是倒數第二個索引。
23) 如何將一個數字轉換成一個字符串?
你可使用自帶函數str()將一個數字轉換爲字符串。若是你想要八進制或者十六進制數,能夠用oct() 或 hex()。
24) Xrange和range的區別是什麼?
Xrange返回一個xrange對象,而range返回一個數組。無論那個範圍多大,Xrange使用一樣的內存。
25) Python中的模塊和包是什麼?
在Python中,模塊是搭建程序的一種方式。每個Python代碼文件都是一個模塊,並能夠引用其餘的模塊好比對象和屬性。
一個包含許多Python代碼的文件夾是一個包。一個包能夠包含模塊和子文件夾。
https://mp.weixin.qq.com/s/TjJERfDwP2_rEidU3ywAlg
golang面試題整理 https://baijiahao.baidu.com/s?id=1623334523226223824
1、go的調度2、go struct能不能比較
由於是強類型語言,因此不一樣類型的結構不能做比較,可是同一類型的實例值是能夠比較的,實例不能夠比較,由於是指針類型
3、go defer(for defer),先進後出,後進先出
4、select能夠用於什麼,經常使用語gorotine的完美退出
golang 的 select 就是監聽 IO 操做,當 IO 操做發生時,觸發相應的動做每一個case語句裏必須是一個IO操做,確切的說,應該是一個面向channel的IO操做
5、context包的用途Context一般被譯做上下文,它是一個比較抽象的概念,其本質,是【上下上下】存在上下層的傳遞,上會把內容傳遞給下。在Go語言中,程序單元也就指的是Goroutine
6、client如何實現長鏈接
server是設置超時時間,for循環遍歷的
7、主協程如何等其他協程完再操做
使用channel進行通訊,context,select
8、slice,len,cap,共享,擴容
append函數,由於slice底層數據結構是,由數組、len、cap組成,因此,在使用append擴容時,會查看數組後面有沒有連續內存快,有就在後面添加,沒有就從新生成一個大的素組
9、map如何順序讀取
map不能順序讀取,是由於他是無序的,想要有序讀取,首先的解決的問題就是,把key變爲有序,因此能夠把key放入切片,對切片進行排序,遍歷切片,經過key取值。
十、實現set
十一、實現消息隊列(多生產者,多消費者)
1使用切片加鎖能夠實現
十二、大文件排序
1歸併排序,分而治之,拆分爲小文件,在排序
1三、基本排序,哪些是穩定的1四、http get跟head
1HEAD和GET本質是同樣的,區別在於HEAD不含有呈現數據,而僅僅是HTTP頭信息。有的人可能以爲這個方法沒什麼用,其實不是這樣的。想象一個業務情景:欲判斷某個資源是否存在,咱們一般使用GET,但這裏用HEAD則意義更加明確。
1五、http 401,403
400 bad request,請求報文存在語法錯誤
401 unauthorized,表示發送的請求須要有經過 HTTP 認證的認證信息
403 forbidden,表示對請求資源的訪問被服務器拒絕
404 not found,表示在服務器上沒有找到請求的資源
1六、http keep-alive
client發出的HTTP請求頭須要增長Connection:keep-alive字段
Web-Server端要能識別Connection:keep-alive字段,而且在http的response裏指定Connection:keep-alive字段,告訴client,我能提供keep-alive服務,而且"應允"client我暫時不會關閉socket鏈接
1七、http能不能一次鏈接屢次請求,不等後端返回
http本質上市使用socket鏈接,所以發送請求,接寫入tcp緩衝,是能夠屢次進行的,這也是http是無狀態的緣由
1八、tcp與udp區別,udp優勢,適用場景
tcp傳輸的是數據流,而udp是數據包,tcp會進過三次握手,udp不須要
1九、time-wait的做用
20、數據庫如何建索引
2一、孤兒進程,殭屍進程2二、死鎖條件,如何避免2三、linux命令,查看端口占用,cpu負載,內存佔用,如何發送信號給一個進程2四、git文件版本,使用順序,merge跟rebase
2五、Slice與數組區別,Slice底層結構
2六、項目裏的微信支付這塊,在支付完微信通知這裏,收到兩次微信相同的支付通知,怎麼防止重複消費(相似接口的冪等性),說了藉助Redis或者數據庫的事務2七、項目裏的消息推送怎麼作的(業務有關)2八、Go的反射包怎麼找到對應的方法(這裏忘記怎麼問的,直接說不會,只用了DeepEqual,簡單講了DeepEqual)2九、Redis基本數據結構30、Redis的List用過嗎?底層怎麼實現的?知道可是沒用過,不知道怎麼實現3一、Mysql的索引有幾種,時間複雜度3二、InnoDb是表鎖仍是行鎖,爲何(這裏答不出來爲何,只說了行鎖)3三、Go的channel(有緩衝和無緩衝)3四、退出程序時怎麼防止channel沒有消費完,這裏一開始有點沒清楚面試官問的,而後說了監聽中斷信號,作退出前的處理,而後面試官說不是這個意思,而後說發送前先告知長度,長度要是不知道呢?close channel下游會受到0值,能夠利用這點(這裏也有點跟面試官說不明白)3五、用過什麼消息中間件之類嗎?沒有3六、有什麼問題嗎?評價?後面還有面試,後面再問吧
38、生產者消費者模式,手寫代碼(Go直接使用channel實現很簡單,還想着面試官會不會不讓用channel實現,不用channel的可使用數組加條件變量),channel緩衝長度怎麼決定,怎麼控制上游生產速度過快,這裏沒說出解決方案,只是簡單說了channel長度能夠與上下游的速度比例成線性關係,面試官說這是一種解決方案39、手寫循環隊列40、寫的循環隊列是否是線程安全,不是,怎麼保證線程安全,加鎖,效率有點低啊,而後面試官就提醒Go推崇原子操做和channel41、寫完代碼面試官說後面問的問題回答就能夠,不知道的話不要緊42、Linux會不會,只會幾個命令,面試官就說一共也就一百多個命令43、TimeWait和CloseWait緣由44、線段樹瞭解嗎?不瞭解,字典樹?瞭解45、看過啥源碼,nsq(Go的消息中間件),簡單問了我裏面的waitgroup包證實我看過46、sync.Pool用過嗎,爲何使用,對象池,避免頻繁分配對象(GC有關),那裏面的對象是固定的嗎?不清楚,沒看過這個的源碼47、有什麼問題嗎?評價?基礎不錯,Linux尚缺,Go的理解不夠深刻,高級數據結構不瞭解,優勢是看源碼48、後面面試官講了他們作的東西,主要是廣告部分,說日均數據量至少百萬以上,多達上億,高併發使用Go支撐,有微服務,服務治理,說我須要學的東西挺多的
49、證實二叉樹的葉子節點跟度數爲2的節點的關係50、惟一索引和主鍵索引51、智能指針52、字符串解析爲數字(考慮浮點型)
53、單點登陸,tcp粘包54、手寫洗牌55、處理粘包斷包實現,面試官覺得是negle算法有關,解釋了下negle跟糊塗窗口綜合徵有關,而後面試官以爲其餘項目是crud就沒問了56、goroutine調度用了什麼系統調用,這個不會,面試官想從go問到操做系統,而後覺得***做系統基礎很差,就問了操做系統問題57、進程虛擬空間分佈,全局變量放哪裏?答上來了,操做系統就不問了58、有沒有網絡編程,有,怎麼看鏈接狀態?netstat,有哪些?ESTABLISHED,LISTEN等等,有異常狀況嗎?TIME_WAIT不少,爲何?大量短連接59、幾種基本排序算法說一下,問了堆的時間複雜度,穩定性,爲何不穩定60、 topk問題,海量數據topk(回答成切分屢次加載內存,而後用維持k長度的有序鏈表,而後被說時間複雜度很差,提示說仍是用堆,而後哦哦哦對)最長連續字串和,這裏我說的解決方案沒用dp(對dp不熟),面試官一直引導我dp,仍是不會61、什麼是主鍵62、聯合索引和惟一索引62、越多的索引越好嗎?63、創建索引要注意什麼?64、進程和線程區別?65、死鎖?66、tcp三次握手67、http,https68、狀態碼401,301,302,20169、項目我說只有一臺機子,因此用的單機部署,面試官說單機也能夠部署多個,有什麼方法嗎?我說docker,問docker有哪些網絡,不熟,dockerfile關鍵字,只答幾個。順便扯了下nginx轉發。
70、數據庫隔離級別,提交讀會形成什麼71、go調度72、 goroutine泄漏有沒有處理,設置timeout,select加定時器
73、mysql高可用的方案74、進程線程區別
75、排序算法以及時間複雜度76、怎麼學習go77、go的線程,給他講了跟goroutine調度78、io模型,同步阻塞,同步非阻塞,異步79、cookie和session
80、接口kps測試81、redis排行榜數據結構(跳躍表),查詢時間複雜度82、redis分佈式,如何減小同步延遲83、mysql能實現redis的功能嗎84、平時怎麼學習?85、看什麼書?86、興趣愛好87、看過google四篇分佈式論文嗎,沒看過89、cap理論,舉例90、LRU算法,LFU91、講講怎麼理解網絡編程
92、go使用踩過什麼坑(for range,數據庫鏈接defer close)93、go優缺點95、go的值傳遞和引用96、慢查詢97、爲何使用pg98、redis的數據類型
99、全部左葉子節點的和100、m個n大小的有序數組求並集,一開始是2路歸併,求時間複雜度,後來在面試官提醒直接m路歸併,求時間複雜度101、static關鍵字,還有其餘關鍵字嗎102、hash表設計,線程安全?103、 線程本身獨享什麼104、網絡編程過程105、select、epoll106、看什麼書
107、排行榜怎麼實現108、go的鎖如何實現,用了什麼cpu指令109、go的runtime如何實現110、看過sql的鏈接池實現嗎111、ctx包瞭解嗎?有什麼用?112、go什麼狀況下會發生內存泄漏?(他說ctx沒有cancel的時候,這個真不知道)113、怎麼實現協程完美退出?114、智力題:1000瓶酒中有1瓶毒酒,10只老鼠,7天后毒性才發做,第8天要賣了,怎麼求那瓶毒酒?115、簡單dp題,n*n矩陣從左上角到右下角有多少種走法(只限往下和往右走)116、用channel實現定時器?(其實是兩個協程同步)117、go爲何高併發好?講了go的調度模型
118、操做系統內存管理?進程通信,爲何共享存儲區效率最高119、實現一個hashmap,解決hash衝突的方法,解決hash傾斜的方法120、怎麼理解go的interface121、100億個數選top5,小根堆122、數組和爲n的數組對123、最大連續子數組和124、redis容災,備份,擴容125、跳躍表,爲何使用跳躍表而不使用紅黑樹126、輸入url後涉及什麼127、tcp怎麼找到哪一個套接字128、ipc方式,共享存儲區原理130、進程虛擬空間佈局131、進程狀態轉換132、線程的棧在哪裏分配133、多個線程讀,一個線程寫一個int32會不會有問題,int64呢(這裏面試官後來講了要看數據總線的位數,32位的話寫int32沒問題,int64就有問題)134、判斷二叉樹是否爲滿二叉樹135、lru實現136、一個大整數(字符串形式表示的),移動字符求比它大的數中最小的137、點贊系統設計