1. 去哪兒網java開發面試經驗牛客
以下是某位求職者面經,僅供參考:
一面:
1.自我介紹
2.直接上手紅黑樹和平衡二叉樹區別
3.紅黑樹的旋轉
2node節點插入和3node節點插入時候旋轉的情況 簡述偽代碼
4.問項目情況。大概半小時 5.concurrenthashmap
結構分析。 刪除和獲取操作過程描述。就是segment. Entry.
除了value 為volatile 其餘都是final.
刪除和獲取操作等等。例如:刪除操作是將entry要刪除的節點的前半部分鏈表進行復制,並指向當前刪除節點的後面節點。(因為next是final的,不可以進行修改,只有entry的表頭可以修改)
不詳述了。
6.索引的優缺點 什麼時候索引不起作用? 在什麼地方可以使用索引?
7.jvm
多態原理。invokestatic invokeinterface
等指令。常量池中的符號引用 找到直接引用。在堆中找到實例對象,獲取到偏移量,由偏移量在方法表中指出調用的具體方法。介面是在方法表中進行掃描)等等扯了半天
8.os: 頁面調度演算法 幾種 分別說一下 LRU FIFO 最佳適應演算法
9.內存管理: 固定分區 動態分區 段 頁 都講講 (哈哈)
10.自己實現一下LRU演算法
8.怎麼學習。看過什麼書
二面:
1.自我介紹
2.項目中與app移動端 的json格式設計
3.hashmap的缺點 具體提現在哪裡?
4.Collections.sort()
的原理---本質上調用的是Arrays.sort() 內部是 使用的歸並排序 接著寫了一下歸並(輔助數組的歸並,和手搖演算法的歸並)
5.一個字元串數組,現給定一個string去進行找出對應的數組中字元串的下標 (可以有容錯,但兩字元串長度必須一致,容錯為2)
例如:
["hello","hj","abc"]
key=「hellg" 返回下角標0
6.jvm參數調優 jvm堆的大小調優
MaxTureningShelod newratio -xxs -xxm -persize
7.圖的 prime
演算法
kruskal
演算法
dijkstra演算法 解決什麼問題? 分別寫一下
偽代碼
8.設計模式: 單例模式(懶漢餓漢) 工廠方法模式 觀察者模式 責任鏈模式
9.項目 又問了一些
10.平時怎麼學習?
三面:
1.自我介紹
2.自己優缺點
3.目前有幾個offer
4.工作地點要求
5.在校實驗室做項目,你認為最大的收獲是什麼
6.評價一下自己的大學生活
7.講了一下福利 之類的
現場書面offer沒了,所以只好等等郵寄,不過還好給了一個布偶紀念品
2. 牛客網做編程題過程中打開其他網頁會被記錄嗎
不會
3. 計算機數學-遞歸演算法
你去搜搜斐波那列奇數,還有爬台階問題,這個問題類似的,fn=f(n-1)+f(n-2),希望能幫到你吧,牛客網裡面編程訓練的劍指offer也有這題
4. 我想知道 藍橋杯 力扣 牛客網還有公司的演算法面試的上機都是怎樣形式的(只說Java就好 )想刷題卻無從下手
類人家的後台有,你在自己這里運行就自己寫主類,你提交就提交那個方法的就行
5. 一道牛客上的演算法題,求大佬幫我看看哪裡寫錯了
#include<iostream>
using namespace std;
int main()
{ int T;
cin >> T;
while (T--)
{ int A, B;
scanf("%d%d", &A, &B);
int a = 0, b = 0;
while (A > 0)
{ a = a*10+ A % 10;
A /= 10;
}
while (B > 0)
{ b = b*10+ B % 10;
B /= 10;
}
int S = a + b;
int s = 0;
while (S > 0)
{ s = s*10+ S % 10;
S /= 10;
}
printf("%d ", s);
}
return 0;
}
6. 面試遇到演算法題怎麼辦,都不會
科班出身還是半路出家?半路出家就選別這類崗位。
計算機科學專業的基礎,外加演算法競賽相關的培訓和實戰,不算基礎,培訓過程也至少要耗去一兩年,所以要算能不能和值不值。真正需要演算法能力高超的崗位薪水好,但是,少之又少,競爭慘烈,985本專業畢業生能搶上的都屬於鳳毛麟角。
7. 在順序表中按值查找運算的復雜性為 牛客網
第26題 (2) 分
在開散列表中不會出現堆積現象.
正確
第27題 (2) 分
計算機的速度越快,演算法的時間復雜性就越低.
錯誤
第28題 (2) 分
順序表不需存放指針,鏈表要存放指針,故鏈表的存儲空間要求總是比順序表大.
錯誤
第29題 (2) 分
如果某種排序演算法是不穩定的,則該方法沒有實際的應用價值.
錯誤
第30題 (2) 分
對任何圖,執行一次深度優先或廣度優先遍歷後,就可訪問到圖中所有節點.
錯誤
第31題 (2) 分
二叉樹中不可能有兩個結點在先根、中根和後根序列中的相對次序都不變.
正確
第32題 (2) 分
鏈棧一般不需要頭結點,因為無頭結點的鏈棧運算也很方便.
正確
第33題 (2) 分
數組的基本運算有讀、寫、插入、刪除等.
錯誤
第34題 (2) 分
樹的度是指樹中結點的最大度數,所以二叉樹的度為2.
錯誤
第35題 (2) 分
在順序表中按值查找運算的復雜性為O(1).
錯誤
第36題 (2) 分
n個結點的有向圖,若它有n(n-1)條邊,則它一定是強連通的.
正確
第37題 (2) 分
基數排序不需進行關鍵字間的比較,故執行時間比基於比較的排序方法要快.
錯誤
第38題 (2) 分
用線性探測法解決突出時,同義詞在散列表中是相鄰的.
正確
第39題 (2) 分
不管樹的深度和形態如何,也不可能構造出一棵有100個結點的哈夫曼樹.
正確
第40題 (2) 分
如果根結點的左子樹和右子樹高度差不超過1,則該二叉樹是平衡二叉樹.
錯誤
第41題 (2) 分
有時冒泡排序的速度會快過快速排序.
正確
第42題 (2) 分
縮短關鍵路徑上活動的工期一定能夠縮短整個工程的工期.
錯誤
第43題 (2) 分
線性結構可以順序存儲,也可以鏈接存儲.非線性結構只能鏈接存儲.
錯誤
第44題 (2) 分
單鏈表中取第i個元素的時間與i成正比.
正確
第45題 (2) 分
二分查找所對應的判定樹,是一棵理想平衡的二叉排序樹.
正確
第46題 (2) 分
堆排序是一種巧妙的樹型選擇排序.
正確
第47題 (2) 分
拓撲排序可以分析某工程能否順利進行.
正確
第48題 (2) 分
利用棧可將遞歸程序轉化成非遞歸程序.
正確
第49題 (2) 分
設串的長度為n,則其子串個數為n(n+1)/2.
錯誤
第50題 (2) 分
線性表、樹、圖等都可以用廣義表表示.
正確
8. 演算法工程師能火多少年
持續到人類滅絕,就像你問數學為人類還能服務幾年一樣,看個人能力能否吃這碗飯。比如可以嘗試挑戰ACM,做一些演算法題,國內的也可以做一下藍橋杯,當然這個簡單一些,更高處走就學一下神經網路演算法和一些機器學習演算法都可以。估計要閉關7--10年,或者你從小學起。
比如我剛剛搜到的一個中學生做演算法的網站,你如果基礎弱一點就可以去試試網頁鏈接,這個應該很容易,稍微上一個層次可以去藍橋杯網站注冊做題網頁鏈接,牛客網也有一些經典ACM試題分析,你可以去做一下網頁鏈接,當然也可以去POJ官網做題。如果這些題目你都能夠解決,那麼演算法工程師這個職位很適合你。演算法工程師算是人類目前工資最高的職位,憑本事拿錢的,更高的就是人工智慧的演算法工程師。
9. 大學的數據結構學過一遍,但是都不怎麼熟悉,然後現在想學演算法,該怎麼開始學
首先數據結構是研究數據的存儲的,雖然在這個過程中也會誕生很多有意義的演算法,比如圖、樹等等;
對於數據結構的話,你先買一本書,把書上的每一章節過一遍,然後到Leetcode或者是牛客網上找題,從數組、到鏈表、到樹、到圖,都過一遍,然後你不是不怎熟悉嘛,所以要多看別人的解析,遇到不懂的地方立刻查。
對於演算法的話,我覺得還是找一些面試書來看比較好,經典演算法要記住,改進的演算法要弄清原理,畢竟演算法有很多,不是一時半會就能看完的,面試書比較實用,內容也基本夠用。