昨天剛做了阿里的筆試,兩道編程題都不太會做,本來以為沒下文了,結果...
今天晚上正在吃飯突然接到阿里電話面試,桌上的飯菜突然就不香了呢......
自我介紹
上來就先讓我自我介紹,慌亂之中趕緊清了清嘴里的食物(手動笑哭...),雖然沒有提前准備過講稿,但家中有糧,心里不慌,拿出簡歷現講^.^
大概就是講了講個人項目經歷以及獲得榮譽吧。不再細說了,趕緊回憶一下知識點。
數據結構的知識
我是非計算機科班出身啊啊啊啊!!!數據結構純自學。。還沒學完555
一、哈希表
hash表的實現主要包括構造哈希和處理哈希沖突兩個方面:
對於構造哈希來說,主要包括直接地址法、平方取中法、除留余數法、隨機數法等。
對於處理哈希沖突來說,最常用的處理沖突的方法有開放定址法、再哈希法、鏈地址法、建立公共溢出區等方法。
在鏈地址法中,哈希表的桶個數使用質數,可以最大程度減少沖突概率,使哈希后的數據分布的更加均勻。如果使用合數,可能會造成很多數據分布會集中在某些點上,從而影響哈希表效率。
二、二叉樹
深度優先遍歷:
先序遍歷:先訪問根節點,然后再前序遍歷其左子樹,再前序遍歷其右子樹。
中序遍歷:先中序遍歷左子樹,然后訪問根節點,最后中序遍歷右子樹。
后序遍歷:先后序遍歷左子樹,再后序遍歷右子樹,最后訪問根節點。
廣度優先遍歷:
又叫層序遍歷,從樹的第一層,也就是根節點開始從上而下對每一層依次訪問,在每一層中,從左往右訪問結點。
三、排序
快速排序:
堆排序:
操作系統的知識
進程和線程區別
C++的知識
虛函數:
一時間給我問懵了,不知道從何講起,我回答了關於多態虛函數表的內容...
左值和右值:
引用和指針區別(參考牛客網):
1.指針有自己的一塊空間,而引用只是一個別名,不是對象;
2.使用sizeof看一個指針的大小是4,而引用則是被引用對象的大小;
3.指針可以被初始化為NULL,而引用必須被初始化且必須是一個已有對象的引用;
4.作為參數傳遞時,指針需要被解引用才可以對對象進行操作,而直接對引 用的修改都會改變引用所指向的對象;
5.可以有const指針,但是沒有const引用;
6.指針在使用中可以指向其它對象,但是引用只能是一個對象的引用,不能被改變;
7.指針可以有多級指針(**p),而引用至於一級;
8.指針和引用使用++運算符的意義不一樣;
9.如果返回動態內存分配的對象或者內存,必須使用指針,引用可能引起內存泄露。
智能指針:
四個智能指針: auto_ptr, shared_ptr, weak_ptr, unique_ptr (第一個已經被C++11棄用)
作用:管理一個指針。因為若動態開辟的內存空間忘記釋放,會造成內存泄漏。由於智能指針是一個類,當超出了類的作用域,類會自動調用析構函數來釋放資源。所以智能指針的作用原理就是在函數結束時自動釋放內存空間,不需要手動釋放內存空間。
shared_ptr:允許多個指針指向同一個對象。當進行拷貝或賦值操作時,每個shared_ptr會記錄有多少其他的shared_ptr指向相同的對象,稱為引用計數。一旦一個shared_ptr的計數器變為0,它就會通過析構函數自動釋放所管理的對象。
unique_ptr:則“獨占”所指向的對象。
計算機網絡的知識
TCP/IP三次握手,為什么不能兩次或者4次,斷開鏈接為什么要4次
這個網上很多
規划題(重點考察思路)
從香港出發,香港廣州杭州上海北京,再回到香港,飛機票價不一定,求小於1000塊的所有乘機方式。
以上。
昨晚筆試題本來就已感覺自己涼涼了,沒想到還有電話面試。就當作是增加經驗了,確實還有很多不足,需要加強學習。