2014.10.15面試總結

1.TCP包結構

    TCP頭:20字節

    選項字段:可以沒有,最多40字節

    填充字段:使TCP首部長度是4字節的整數倍


2.TCP流量控制,擁塞控制算法

    流量控制:滑動窗口

    擁塞控制:慢啓動,擁塞避免,快速重傳 ,快速恢復


3.VIM如何刪除3行,如何移動到行首

    刪除3行:3dd,d3d,V選中3行後d

    移動到行首:0(絕對行首),^(第一個非空字符)


4.代碼題,一個數組中的元素先遞增再遞減,找到其拐點

    基本思想:二分查找+遞歸

    整體思路:每次二分查找得到中間值a,再遞歸求出左邊區域的最大值b和右邊區域的最大值c,最終拐點就是a、b、c中最大的那個數

    注意:如果middle==start或middle==end,則停止遞歸,最大值即start和end中較大的那個


5.一個鏈表,如何找到倒數第k個結點?如果鏈表有環,如何處理?

    無環情況:

    兩個指針,第一個指針先走k-1步,然後兩指針同時後移,直到後面的指針移到尾結點,前面的指針就是倒數第k個結點


    有環情況:

    先判斷是否有環:兩個指針,第一個每次走1步,第二個每次走2步,如果第二個走到NULL則說明無環,如果兩個指針相遇了則說明有環。

    再判斷環的起點:兩個指針,第一個從鏈表起始開始走,第二個從相遇處開始走,兩個指針每次都只走一步,再相遇的那個點就是環的起點。證明:設環長爲L,環的起點距鏈表起點距離爲A,快慢指針相遇時距環的起點距離爲X。則對慢指針的路程有S=A+X,對快指針有2S=A+X+nL,nL表示快指針在環內跑了n圈。消去上面兩個式子中的S,得到A-X=nL,即環的起點到鏈表起點的距離A與到相遇點的距離X之差,正好是環長的整數倍。所以一個指針從起點走,一個指針和相遇點走,起點的指針走完A步後,另外一個指針也剛好回到環的起點,兩者相遇。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章