劍指Offer——讀書筆記

@[C++|面試|數(shù)據(jù)結(jié)構(gòu)|算法]

高質(zhì)量的代碼

代碼的規(guī)范性

  • 書寫清晰
  • 布局清晰
  • 命名合理

代碼的完整性

  • 完成基本功能
  • 考慮邊界條件
  • 做好錯(cuò)誤處理

代碼的魯棒性

  • 采取防御式編程
  • 處理無(wú)效的輸入

優(yōu)化時(shí)間和空間效率

編程面試的時(shí)候,面試官通常對(duì)時(shí)間復(fù)雜度和空間復(fù)雜度都會(huì)有要求,并且一般情況下面試官更加關(guān)注時(shí)間復(fù)雜度。

降低時(shí)間復(fù)雜度的方法:

  • 改用更加高效的算法跪帝,如聯(lián)想快速排序中的Partition璧函,采用動(dòng)態(tài)規(guī)劃等算法
  • 用空間換取時(shí)間宇色,經(jīng)常通過(guò)輔助內(nèi)存和簡(jiǎn)單的哈希表驱犹,實(shí)現(xiàn)利用較小的空間的消耗提高時(shí)間效率

當(dāng)然匹厘,也不是所有情況下屯蹦,以空間換取時(shí)間都是可行的

  • 如果輔助空間消耗的太多维哈,可能得不償失
  • 如果是在嵌入式開(kāi)發(fā)等對(duì)空間要求較高的情況下盯漂,也要格外注意空間消耗

解決面試題的思路

畫圖

圖形化能使抽象的問(wèn)題形象化。當(dāng)面試題涉及鏈表笨农、二叉樹(shù)等數(shù)據(jù)結(jié)構(gòu)時(shí)就缆,如果在紙上畫幾張草圖,題目中隱藏的規(guī)律就有可能變得很直觀谒亦。

舉列

一兩個(gè)例子能使抽象的問(wèn)題具體化竭宰。很多與算法相關(guān)的問(wèn)題都很抽象,未必一眼就能看出它們的規(guī)律份招。這個(gè)時(shí)候我們不妨舉幾個(gè)例子切揭,一步一步模擬運(yùn)行的過(guò)程,說(shuō)不定就能發(fā)現(xiàn)其中的規(guī)律锁摔,從而找到解決問(wèn)題的竅門廓旬。

分解

把復(fù)雜的問(wèn)題分解成若干個(gè)小問(wèn)題,是解決很多復(fù)雜問(wèn)題的有效方法谐腰。如果我們遇到的問(wèn)題很大孕豹,可以嘗試先把大問(wèn)題分解成小的問(wèn)題,然后遞歸地解決這些小問(wèn)題十气。分治法励背、動(dòng)態(tài)規(guī)劃等方法都是應(yīng)用分解復(fù)雜問(wèn)題的思路。


面試中的各項(xiàng)能力

“應(yīng)聘者會(huì)被問(wèn)及一些需求不是很明確的問(wèn)題砸西,解決這些問(wèn)題需要應(yīng)聘者和面試官進(jìn)行溝通叶眉,以及在講解思路和代碼的過(guò)程中與需要和面試官交流互動(dòng)。溝通及學(xué)習(xí)能力是面試成績(jī)中關(guān)鍵的考察點(diǎn)芹枷⌒聘恚” ——堯敏(淘寶,資深經(jīng)理)

應(yīng)聘者的綜合素質(zhì)

  • 編程能力
  • 溝通能力
  • 學(xué)習(xí)能力
  • 知識(shí)遷移能力
  • 發(fā)散思維能力
  • 抽象建模能力
  • ...

溝通能力和學(xué)習(xí)能力

隨著軟件鸳慈、系統(tǒng)功能越來(lái)越復(fù)雜饱溢,開(kāi)發(fā)團(tuán)隊(duì)的規(guī)模越來(lái)越大,開(kāi)發(fā)者蝶涩、測(cè)試者和項(xiàng)目經(jīng)理的溝通交流變得越來(lái)越重要理朋。因此在面試過(guò)程中絮识,面試官也越來(lái)越看重溝通能力绿聘,因此也常常在面試的過(guò)程中,面試題描述比較含糊次舌,從而希望應(yīng)聘者能夠主動(dòng)溝通熄攘,充分理解題意,有效表達(dá)自己的想法和見(jiàn)解彼念。

而對(duì)于學(xué)習(xí)能力挪圾,由于軟件技術(shù)發(fā)展日新月異浅萧,只有具備很強(qiáng)的學(xué)習(xí)能力和學(xué)習(xí)欲望的人,才能不斷完善自己的知識(shí)結(jié)構(gòu)哲思,不斷學(xué)習(xí)新的現(xiàn)金技術(shù)洼畅,讓自己職業(yè)生涯保持長(zhǎng)久的生命力。

知識(shí)遷移能力

知識(shí)遷移能力的通俗說(shuō)法就是“舉一反三”的能力棚赔。能夠根據(jù)已知的知識(shí)來(lái)理解新的概念帝簇,以及根據(jù)解決一道題的思路,從而去解決一類問(wèn)題靠益。如面試題求解二叉樹(shù)的深度

int TreeDepth(BinaryTreeNode* pRoot)
{
    if(pRoot == NULL)
        return 0;
        
    int nLeft = TreeDepth(pRoot->m_pLeft);
    int nRight = TreeDepth(pRoot->m_pRight);
    
    return (nLeft > nRight) ? (nLeft + 1) : (nRight + 1); 
}

知識(shí)遷移能力能夠幫助我們輕松地解決很多問(wèn)題丧肴。有些面試官在提問(wèn)難題之前,會(huì)問(wèn)一道相關(guān)但比較簡(jiǎn)單的題目胧后,也是希望我們能夠從解決問(wèn)題的過(guò)程中受到啟發(fā)芋浮,最總解決較為復(fù)雜的問(wèn)題。

抽象建模能力

  • 建模的第一步就是選擇合理的數(shù)據(jù)結(jié)構(gòu)來(lái)表述問(wèn)題壳快。實(shí)際生產(chǎn)生活中的問(wèn)題千變?nèi)f化纸巷,而常用的數(shù)據(jù)結(jié)構(gòu)卻只有有限的幾種。
  • 建模的第二部就是分析模型中的內(nèi)在規(guī)律眶痰,并用編程語(yǔ)言表述這種規(guī)律何暇。

發(fā)散思維能力

  • 發(fā)散思維的特點(diǎn)是思維活動(dòng)的多向性和變通性,也就是我們?cè)谒伎紗?wèn)題時(shí)注重運(yùn)用多思路凛驮、多方案裆站、多途徑地解決問(wèn)題。
  • 通過(guò)考查發(fā)散思維能力黔夭,面試官能夠
    • 了解應(yīng)聘者探索新思路的激情
    • 了解應(yīng)聘者的靈活性和變通性
    • 了解面試者知識(shí)面的廣度和深度

備注:文中主要內(nèi)容參考《劍指Offer》——何海濤宏胯,書中有很多編程實(shí)例,就不在這里贅述了本姥,推薦急于找工作的同學(xué)和感興趣的人閱讀

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末肩袍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子婚惫,更是在濱河造成了極大的恐慌氛赐,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件先舷,死亡現(xiàn)場(chǎng)離奇詭異艰管,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蒋川,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門牲芋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事缸浦∠Τ澹” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵裂逐,是天一觀的道長(zhǎng)歹鱼。 經(jīng)常有香客問(wèn)我,道長(zhǎng)卜高,這世上最難降的妖魔是什么醉冤? 我笑而不...
    開(kāi)封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮篙悯,結(jié)果婚禮上蚁阳,老公的妹妹穿的比我還像新娘。我一直安慰自己鸽照,他們只是感情好螺捐,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著矮燎,像睡著了一般定血。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上诞外,一...
    開(kāi)封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天澜沟,我揣著相機(jī)與錄音,去河邊找鬼峡谊。 笑死茫虽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的既们。 我是一名探鬼主播濒析,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼啥纸!你這毒婦竟也來(lái)了号杏?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤斯棒,失蹤者是張志新(化名)和其女友劉穎盾致,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體荣暮,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡庭惜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了渠驼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蜈块。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖迷扇,靈堂內(nèi)的尸體忽然破棺而出百揭,到底是詐尸還是另有隱情,我是刑警寧澤蜓席,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布器一,位于F島的核電站,受9級(jí)特大地震影響厨内,放射性物質(zhì)發(fā)生泄漏祈秕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一雏胃、第九天 我趴在偏房一處隱蔽的房頂上張望请毛。 院中可真熱鬧,春花似錦瞭亮、人聲如沸方仿。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)仙蚜。三九已至,卻和暖如春厂汗,著一層夾襖步出監(jiān)牢的瞬間委粉,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工娶桦, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贾节,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓衷畦,卻偏偏與公主長(zhǎng)得像氮双,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子霎匈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容