引言

開篇

這個(gè)系列坑主要圍繞 leetcode 和基本數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)娩梨。我大概是第三次刷 leetcode 了铣鹏,第一次是大學(xué)玩 ACM 的時(shí)候熱身刷透典,用c++表達(dá)赎败。第二次是一年多前面試 facebook 前端時(shí)刷了一下秕衙,但沒有刷完。最近想用js表達(dá)再刷一次發(fā)布出來僵刮。

數(shù)據(jù)結(jié)構(gòu)與算法据忘,顧名思義就是 數(shù)據(jù)結(jié)構(gòu)+算法。數(shù)據(jù)結(jié)構(gòu)為了存儲(chǔ)設(shè)計(jì)一個(gè)面向存儲(chǔ)的實(shí)現(xiàn)方式搞糕,為了程序接觸方便則需要拗一個(gè)數(shù)據(jù)的造型勇吊,所以主要就分為存儲(chǔ)方式+造型(結(jié)構(gòu))。算法說白了就是一些程序邏輯窍仰,作用在數(shù)據(jù)結(jié)構(gòu)上汉规,為了實(shí)現(xiàn)一個(gè)需求。首先,需求要滿足针史,需要對(duì)它測試晶伦。其次在滿足需求的前提下通過一些評(píng)價(jià)指標(biāo),比如時(shí)間空間復(fù)雜度來評(píng)價(jià)這個(gè)方案并優(yōu)化它啄枕。最后婚陪,我們需要清晰的表達(dá)出我們的邏輯,要追求 clean code频祝,讓大家一目了然通讀泌参。

思想

我自己參加過很多面試,也面試過很多人常空,一些同學(xué)對(duì)算法是抵觸的沽一,覺得好像就是一個(gè)理論體系。其實(shí)不然漓糙,一到算法題你可以當(dāng)做一個(gè)工程題铣缠。產(chǎn)品經(jīng)理提的需求就是一個(gè)input和一個(gè)output,并且對(duì)你的性能有所要求昆禽,關(guān)鍵是這個(gè)需求不會(huì)改攘残!那么我們?cè)撛趺醋觯慨?dāng)然首先把 文字轉(zhuǎn)換為數(shù)據(jù)为狸,通過我們選擇的語言變成一個(gè)你想實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu),比如我用數(shù)組遗契,我用鏈表辐棒,我用樹。這都o(jì)k牍蜂,目的就是為了在計(jì)算機(jī)中表達(dá)出這個(gè)數(shù)據(jù)漾根。至于到底選什么當(dāng)然會(huì)根據(jù)性能根據(jù)需求而定,你可以放大并把它理解為技術(shù)選型鲫竞。當(dāng)然這些基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)本身也有一些模版代碼辐怕,比如樹怎么實(shí)現(xiàn),鏈表怎么實(shí)現(xiàn)从绘。這些數(shù)據(jù)結(jié)構(gòu)上一定需要綁一些邏輯寄疏,最后輸出成output。這些邏輯本身會(huì)有副作用僵井,于是我們拿到一定也會(huì)先把需要用到的副作用變量申明好陕截,命名好。比如樹的遍歷批什,我一定需要一個(gè)當(dāng)前的緩沖值农曲,然后考慮我的算法方法,邊界條件等等驻债。做完之后記得寫測試判斷需求是否滿足乳规,然后評(píng)價(jià)&優(yōu)化它形葬。

評(píng)價(jià)

在解決一個(gè)問題的時(shí)候,我們會(huì)有個(gè)萬能的方法暮的,就是所有情況都去嘗試笙以。雖然笨但是一定能做出來,代價(jià)就是運(yùn)行次數(shù)規(guī)模青扔,我們把它可以作為一個(gè)時(shí)間維度的評(píng)價(jià)的指標(biāo)源织。于此對(duì)應(yīng)自然就會(huì)有空間維度的評(píng)價(jià)指標(biāo),同樣解決這個(gè)問題微猖,你再干的時(shí)候有很大的副作用空間谈息,需要給你挪很多地方放東西,那么也是一個(gè)評(píng)價(jià)指標(biāo)凛剥。對(duì)時(shí)間性能所謂好的方法解決一個(gè)問題自然就是侠仇,通過每個(gè)問題的特點(diǎn)分析,構(gòu)造我們邏輯去盡可能的命中有用的邏輯犁珠,盡可能減少重復(fù)的無用邏輯逻炊,一旦命中有用邏輯分支,那么else的所有情況就被跳過了犁享。所有的算法我們可以看特點(diǎn)余素,都是分析需求特點(diǎn),然后看看我們有沒有辦法讓他更容易命中有用邏輯炊昆,跳過更多無用的執(zhí)行次數(shù)桨吊。比如樹的優(yōu)先查找算法,這種結(jié)構(gòu)當(dāng)我們一條路檢測到某個(gè)特診后凤巨,下面的路不用走了视乐,直接剪枝,回去走新路敢茁,當(dāng)然對(duì)于走路是一路往下走還是走一路換旁邊的路再往下佑淀,走多少跳出來,都是根據(jù)需求判定哪個(gè)更容易更少走無用路彰檬。我如果更容易命中特征也就更快的能知道這里可以走伸刃,這里不可以走,開啟新的路逢倍。

我希望我表達(dá)的更通俗更好理解奕枝,以實(shí)戰(zhàn)為主。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瓶堕,一起剝皮案震驚了整個(gè)濱河市隘道,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖谭梗,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件忘晤,死亡現(xiàn)場離奇詭異,居然都是意外死亡激捏,警方通過查閱死者的電腦和手機(jī)设塔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來远舅,“玉大人闰蛔,你說我怎么就攤上這事⊥及兀” “怎么了序六?”我有些...
    開封第一講書人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蚤吹。 經(jīng)常有香客問我例诀,道長,這世上最難降的妖魔是什么裁着? 我笑而不...
    開封第一講書人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任繁涂,我火速辦了婚禮,結(jié)果婚禮上二驰,老公的妹妹穿的比我還像新娘扔罪。我一直安慰自己,他們只是感情好桶雀,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開白布步势。 她就那樣靜靜地躺著,像睡著了一般背犯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上盅抚,一...
    開封第一講書人閱讀 49,837評(píng)論 1 290
  • 那天漠魏,我揣著相機(jī)與錄音,去河邊找鬼妄均。 笑死柱锹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的丰包。 我是一名探鬼主播禁熏,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼邑彪!你這毒婦竟也來了瞧毙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宙彪,沒想到半個(gè)月后矩动,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡释漆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年悲没,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片男图。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡示姿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出逊笆,到底是詐尸還是另有隱情栈戳,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布览露,位于F島的核電站荧琼,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏差牛。R本人自食惡果不足惜命锄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望偏化。 院中可真熱鬧脐恩,春花似錦、人聲如沸侦讨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽韵卤。三九已至骗污,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沈条,已是汗流浹背需忿。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蜡歹,地道東北人屋厘。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像月而,于是被迫代替她去往敵國和親汗洒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

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