久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

leetcode 刷500道題,,筆試/面試到底穩(wěn)不穩(wěn)

 hlhq1 2019-10-13
作者 |  帥地

責編 | 阿禿

想要學習算法,、應(yīng)付筆試或者應(yīng)付面試手撕算法題,相信大部分人都會去刷 Leetcode,,有讀者問,?如果我在 leetcode 堅持刷它個 500 道題,以后筆試/面試穩(wěn)嗎,?

這里我說下我的個人看法,,我認為不穩(wěn)。下面說說為啥不穩(wěn)以及算法題應(yīng)該如何刷,、如何學才比較好,。

一、先說說筆試題

在刷 leetcode 的時候,,你會發(fā)現(xiàn),,每道題的題意都很短,你只需要花十幾秒的時間,,就知道這道題是要你干嘛了,,并且每道題所用道的算法思想都很明確,動態(tài)規(guī)劃,、遞歸,、二分查找等,你可能很快就知道該用哪種方法,,只是你不懂如何把代碼寫出來而已,。

而在筆試中是完全不一樣的,在筆試中,,大部分題目都是情景題,,可能讀懂個題目都需要花不少時間,偶爾還會遇到不大知道題目要我們干嘛,,而且有時間限制,,估計每道題給你分配的時間是 30 分鐘。這里我隨便扔一道題給大家看看(Shopee去年的真題),。

并且你可能不容易看出來,,這些道題該用什么方法好,有可能是多種方法的結(jié)合(當然,,不是指這道題哈),。

也就是說,在 leetcode 中,,hard 級別的題做的出來,,而在筆試中 medium 級別的,由于時間、心態(tài)等因素的影響,。你可能還做不出來,,當然,大佬除外,。下面說一說題型的一些題型以及如何學習算法會好應(yīng)付點,。

在筆試中,我認為主要有如下幾種題型:

1,、基本數(shù)據(jù)結(jié)構(gòu)的考察:這類題我覺得是比較簡單的,,主要考場基本數(shù)據(jù)結(jié)構(gòu)的操作,例如二叉樹的層序遍歷,,鏈表的逆序等,,當然,它不會直接告訴你,,讓你來逆序或者遍歷,。例如:

2、某種算法思想的掌握:這類題你掌握了某種算法思想,,就會比較容易,,如果不懂,那就涼涼了,。例如動態(tài)規(guī)劃,、回溯、枚舉,、深度/廣度、貪心,、二分等,。其中,我覺得動態(tài)規(guī)劃考的挺多,,還要就是 回溯+深度/廣度,。例如:

所以,常見算法思想,,一定要掌握,。

3、邊界條件的考察:這類型的題,,估計你一看就有思路,,知道該怎么做,但是,,它的邊界條件特別多,,需要分很多種情況來討論,特別容易出錯,有時候會讓人陷進去,,越做越復雜,,這類題主要考場你的思維嚴謹程度。例如:

4,、找規(guī)律,、數(shù)學公式:這類型的題,主要是根據(jù)數(shù)據(jù)之間的一些關(guān)系,,來找一些規(guī)律,,進而推出他們的通用公式,就像我們高中時,,找數(shù)列的同項一樣,。例如:


二、應(yīng)該如何刷題,?如何學習,?

上面說了筆試題的一些情況,也說了主要考察的一些題型,。針對這些題型,,我覺得在刷題的時候,你要做好下面幾件事,。

1,、分類歸納/總結(jié)

歸納?總結(jié),?估計大部分都知道歸納,、總結(jié)這么一回事,但是,,有沒有去實踐我就不知道了,。

(1)、數(shù)組和相關(guān)題型

對于算法題,,還是有很多種題型需要去總結(jié)的,,如果你懂這個題型,以后遇到類似的題,,相信很快就能做出來的,。有哪些題型可以總結(jié)呢?答是非常多,,例如:

(1),、給你一個非負數(shù)的數(shù)組,求最大子數(shù)組和的長度

這算是一個題型,,關(guān)于這個題型,,有很多種變形,、拓展,這里建議一起歸納總結(jié),,例如:

(2),、剛才給的數(shù)組是非負數(shù)的,現(xiàn)在變一下,,給的數(shù)組是可正可負,。

還能繼續(xù)拓展嗎?答是可以的,,例如:

(3),、給你個矩陣(即二維數(shù)組),求最大子矩陣和的面積

還有嗎,?有,,例如剛才是求最大和,現(xiàn)在我改成求最大乘積,。

我舉上面這些例子,,就是想告訴你,對于前期的學習,,我建議分類刷題,,總結(jié)題型,像我上面舉的這些例子,,在筆試/面試中還是比較常見的,,如果你懂得對應(yīng)的方法,就可以秒殺了,,因為這類題,,沒啥邊界或者規(guī)律。例如我剛才距離的Shopee的零食柜那道題,,實際上就是數(shù)組切割題型,,相當于給你一個數(shù)組,讓你切割 n 下,,那么可以把數(shù)組切割成 n + 1 個子數(shù)組,,怎么樣切割,,才能讓最大子數(shù)組的和最?。?/p>

關(guān)于題型的,,還是很多的,,我這里無法一一給你列舉,只能靠你刷題的過程中,,進行分類,、總結(jié)。不過我可以給你推薦一些資料,后面推薦哈,。下面我在說一些題型吧,。

(2)、基本數(shù)據(jù)結(jié)構(gòu)操作相關(guān)題型

剛才我說了,,筆試題的考察,,有一類題是基本數(shù)據(jù)結(jié)構(gòu)的考場,而且,,這類題在面試中,,也是高頻考點,在筆試中,,倒不是很高頻,。對于這類題,我覺得你愿意去總結(jié),,那么以后遇到,,問題不大。例如:

鏈表的各種操作:逆序(部分逆序,、按某種條件逆序),、判斷是否有環(huán),環(huán)的入口節(jié)點,、刪除指定節(jié)點等,。

二叉樹的各種操作:各種非遞歸的遍歷操作(前中后、層),、二叉樹的公共祖先,、根據(jù)前中后的遍歷結(jié)果來重構(gòu)二叉樹等等。

隊列,、棧相關(guān)操作:最小棧,、來隊列來實現(xiàn)棧等。

(3),、字符串相關(guān)問題

不得不說,,字符串相關(guān)問題,估計考的最高頻,,而且,,我可以告訴你,對于字符串相關(guān)問題,,90% 可以用動態(tài)規(guī)劃來解決,。反正對于字符串問題,我一般想法就是能否套用動態(tài)規(guī)劃,,字符串問題有點多,,不過你有時間,,建議總結(jié)。例如:通配符的匹配,、最長公共子串,、最小編輯代價、最長回文串等等,。大部分都是用動態(tài)規(guī)劃,,而且,我覺得解法都差不多,,所以強烈建議專門花一段時間來做,、總結(jié)、歸納,。后面我也會寫這方面的算法文章,,敬請期待。

2,、多思考/動手,,提高自己的思維完整性/靈敏性

(1)、邊界,、找規(guī)律題型

剛才我說有一類題型是邊界特別多的,,對于這類題,我覺得不好總結(jié),,這類題考察你邏輯是否嚴謹,,能否化繁為簡。這里我建議多做幾道,,做的時候,,多自己思考,千萬不要覺得自己知道思路,,自己怎么寫,,只是情況太多,懶的寫,,直接看別人的答案,,這樣子,這道題你做了價值不大,,因為這類題就是考察你思維完整性的,,最好是自己做,可能你用了 十幾個 if 語句,,沒關(guān)系,。接著你可以把你的 if  語句進行化簡,,查找他們的共同點,。最后你可以看大佬們的做法,,你的收獲會更大!

對了,,也千萬別急著動手寫,,應(yīng)該想一想可行性,不然你容易陷入無底深淵,。

對于找規(guī)律的題型也是一樣,,這類題最后別急著看答案,應(yīng)該多思考,,多做幾道,,做多了,你的思維會越來越靈敏,,以后看到這類型的題,,可以很快有思路。

所以,,對于這種邊界,、規(guī)律題,個人感覺總結(jié)的價值不是特別大,,更多的是多思考,,多動手。

注意:每道題,,我們都要追求最優(yōu)解哈,,別覺得 ac 了就完事了。


三,、我看過的一些資料

上面說了那么多,,可能有人是道理我都懂,可我還是學不會,,說實話,,學習的方法有很多,每個人的學習方法也都不一樣,,我這里也只是提供一種參考,。但是,無論什么方法,,你不去動手執(zhí)行,,那么,一切都是空話,。

這里我推薦一些我看過的書,,感覺挺不錯。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多