0309騰訊面試

2021-10-21 15:14:26 字數 1000 閱讀 4132

昨天突然來了面試通知。顯然是簡歷被撈了一下,提前批面試。

先上來讓我做4道演算法題,45分鐘。要盡量時間複雜度和空間複雜度最優。

有一道題比較難,就是陣列a中找到a[i] & a[j] (i!= j)最大值(位運算與)。我用的辦法是貪心演算法,從高位開始篩選數字,確保至少有2個數才篩選。

然後就是問我專案。

問我git裡面的diff的myers演算法是怎麼回事?

我只答了dp的公式,但是當他給我兩個實際的檔案,問我怎麼執行的時候,我沒有答上來。

後面就是看我其他專案比較單薄,隨便問問。

最後和我說我是掛了。

然後告訴我說,乙個是演算法題最好不要用python刷,因為一看就看出來是非科班的,動態語言也不好考察編譯上的問題;乙個是寫在簡歷上的專案一定要清楚

面試官很實在,也指出了我的問題。

我轉碼時間還很短,可以慢慢努力。慢慢積累咯。

用三維陣列path儲存路徑,用二維陣列dp儲存路徑長度

指定行代表的是新檔案after,列代表的是舊檔案before。那麼向右走代表的是刪除一行,向下走代表新增一行,斜著走代表的是兩行相同,不需要動

首先是初始值,第一行的路徑就是一路向右,第一列的路徑是一路向下。

從第二行的第二列開始,如果before的j-1行和after的i-1行相同,那麼dp[i][j] = dp[i - 1][j - 1];。

不然則比較dp[i - 1][j], dp[i][j - 1],看哪個比較小。dp[i][j]=min(dp[i - 1][j], dp[i][j - 1])+1。

然後是path,如果是斜著走,在path上就是直接加入新的乙個點,如果是向右或者向下走,就要在path[i-1][j-1]的基礎上加上中介的點以後再加上i,j的點。

返回paths[paths.length - 1],也就是到右下角的那條路徑

最後是用得到的path陣列來列印檔案的變化。對每個值,找前乙個的x,y的差值,如果都差1,表示是斜走,不用標註;如果x差1,那麼就是新增一行;如果是y差1,那麼就是刪除一行。以此列印。

For 迴圈巢狀 0309

for迴圈巢狀0309 迴圈四要素 初始條件,迴圈條件,迴圈體,狀態改變。for 初始條件 迴圈條件 狀態改變 迴圈體break 中斷迴圈,跳出迴圈 continue 停止本次迴圈,進入下次迴圈 輸入乙個整數,計算從1加到這個數的結果 console.write 輸入乙個正整數 int a int....

騰訊面試經歷

linux和os netstat tcpdump ipcs ipcrm 如果這四個命令沒聽說過或者不能熟練使用,基本上可以回家,通過的概率較小 這四個命令的熟練掌握程度基本上能體現面試者實際開發和除錯程式的經驗 cpu 記憶體 硬碟 等等與系統效能除錯相關的命令必須熟練掌握,設定修改許可權 tcp網...

騰訊面試經驗

三面是總監面,本人不幸被拒了,這次面試沒有問專案相關的問題,專案的問題是放在二面問的。三面給人的感覺要求很嚴,有些問題看似基礎,但問得很細,稍有閃失就被pass,絕不能有模稜兩可那種回答,以下是面試題 1 tcp三次握手的過程,accept發生在三次握手哪個階段?2 tcp流,udp的資料報,之間有...