面試算法和數(shù)據(jù)結(jié)構(gòu)總結(jié)

Experience

  • 命名style
  • 單元測試和assert的使用
  • anotation
  • 括號匹配,標(biāo)點(diǎn)無遺漏
  • c++注意輸入?yún)?shù)為引用
  • 慢下來,特別邊界條件點(diǎn)(&& || < > = !=)
  • 盡量一次整對

Array

  • qsort
  • binary search
  • heap sort
  • min(max) k element
  • 在一個(gè)字符串中找到第一個(gè)只出現(xiàn)一次的字符。如輸入abaccdeff,則輸出b(char arr)
  • 僅含0,1的數(shù)組排序
    • 求和,再賦值O(2N)
    • 快排(交換兩端的0和1)
  • 調(diào)整數(shù)組長度,使基數(shù)位于偶數(shù)之前(同上)
  • Joseph環(huán)

Bit

  • ip parse
  • 1 bit of integer

List

  • merge list
  • 鏈表是否有環(huán)

注意不一定從首位相連,有可能局部有環(huán)
兩個(gè)人在環(huán)形操場跑步,跑的快的總能追上跑的慢的

  • 兩個(gè)鏈表是否相交(相交則尾節(jié)點(diǎn)一致),擴(kuò)展求相交的節(jié)點(diǎn)
  • 鏈表長度
  • 輸入一個(gè)單向鏈表,輸出該鏈表中倒數(shù)第k個(gè)結(jié)點(diǎn)
    • record all(use vector)
    • two pass
  • Joseph環(huán)
  • O(1)刪除單向鏈表節(jié)點(diǎn)(如何避免查找,直接刪除)

Stack

  • min stack
  • 給定入棧序列,判斷一個(gè)序列是否為出棧序列

String

  • strcmp
  • reverse(first reverse all, then reverse every word)
"I am a student." 則輸出"student. a am I";
  • 在字符串中刪除特定的字符

Tree

  • depth of a tree
  • the max distance of a tree(expand problem of tree depth)
  • 就地反轉(zhuǎn)二叉樹
  • 按層次遍歷二叉樹,將同層的節(jié)點(diǎn)打印在同一行上。不同層的節(jié)點(diǎn)分行打印
  • BiTree to BiLink
  • sum path
輸入一個(gè)整數(shù)和一棵二元樹。
從樹的根結(jié)點(diǎn)開始往下訪問一直到葉結(jié)點(diǎn)所經(jīng)過的所有結(jié)點(diǎn)形成一條路徑。
打印出和與輸入整數(shù)相等的所有路徑。
例如輸入整數(shù)22 和如下二元樹
10
/ \
5 12
/ \
4 7
則打印出兩條路徑:10, 12 和10, 5, 7。

BT

  • sum path
  • 背包問題
  • 1-N所有排列組合

DP

  • sum array max sum
  • 找零錢
  • 背包問題
  • 走樓梯問題
  • 最長公共子序列

Hash

  • two sum
  • 在字符串中刪除特定的字符。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容