是我不配WXG,真的太恐怖了
時長:60min
自我介紹(5min):主要說競賽經歷,簡單了解C++、OS和計網的部分基本知識,
問答題:
- 了解C++11、C++17和C++20之間的差別嗎?
- 了解C++的STL庫嗎?簡單介紹幾個?
- 你說 v e c t o r vector vector 底層是一個陣列,請你從作業系統的角度分析系統是怎樣為 v e c t o r vector vector 分配記憶體的?分配的記憶體種類是什么?為什么是這樣?
- 行程為什么比執行緒開銷大?
- 既然你提到了創建和回收記憶體,請你回答一下系統是怎么分配的?解釋一下為什么這樣開銷大?
- 堆區記憶體怎樣創建/回收?為什么要回收?
- 剛剛說到了 m a l l o c malloc malloc ,請問 m a l l o c malloc malloc 可以怎樣優化?
- 你可以從底層分析一下 m a l l o c malloc malloc 的實作,然后回答我的問題,
演算法題(maybe是演算法)
- 找出 n n n 個數中出現次數最多的前10個
- 如果 n n n 有上百億,用任何方式都無法存盤,怎么做?(提示:記憶體不夠用,但你可以呼叫磁盤)
- 寫個二分吧
i n t n = ( i n t ) a r r . s i z e ( ) ; int\ \ n=(int)arr.size(); int n=(int)arr.size();
為什么要加型別強制轉換?為什么假定 n n n 是 i n t int int ?
i n t m i d = ( l + r ) > > 1 ; int\ \ mid=(l+r)>>1; int mid=(l+r)>>1;
你假定 n n n 是 i n t int int 這里沒錯嗎?
答:用 l o n g l o n g long\ long long long (告訴我不允許)
答:用 u n s i g n e d i n t unsigned\ int unsigned int (告訴我不允許)
答:用 i f if if 判斷 (告訴我不允許)
答:用 ( r ? l ) > > 1 + l (r-l)>>1+l (r?l)>>1+l
你認為以上你提出的方法中哪個是最優的,哪個是最差的?請從作業系統的角度分析一下原因? - 現在我要發送一個檔案,內容是所有ASCII字符,怎樣編碼發送位元流?
- 還是發送這樣的檔案,允許傳輸的字符有64種,怎么編碼?
你的做法花費太大,請給我一個更優的,
檔案中的字符是單個編碼還是多個編碼?
幾字符對應幾位元是最優的?要求給我一個相對精確的答案,
你認為你的這個編碼適用于實際生活嗎?
反問
- 謝謝您,我沒有問題了,面試可以結束了,(我只想逃)
總結
反正就是會一直深入問,第一層我就不會了,面試官依然試圖引導我到第五層,沒想到最演算法的是二分,從計算機基礎的角度理解二分,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/264153.html
標籤:其他
上一篇:計算機組成原理(6)指令系統
