为什么要来学习算法?写在英雄的5月集训月末
一、引言
“12月,當(dāng)我站在滑雪場的山頂,風(fēng)又大又冷,坡又陡又彎,問自己,今天為什么要來滑雪?”
5月,這一天的算法又長又抽象,對應(yīng)的題目又多又困難,那為什么要來學(xué)習(xí)算法、刷題呢?
因?yàn)榕d趣,這是自我決定論中的第一步。
它的契機(jī)可能是為了面試,但它的目的絕不止于面試。而一件值得堅(jiān)持的事,有時(shí)也需要緣分,讓我們遇到能指引我們的人、能一起抱團(tuán)的人。
二、找尋引導(dǎo)
有一個(gè)B站UP,他說話逗比,他實(shí)力過硬,他是ACM全國金牌,他年過30歲出來將算法的金針度于你。
他的B站名為:英雄哪里出來。我稱他為英雄。
三、刷題能切實(shí)增強(qiáng)工作能力
力扣等Online Judge的“拒絕”其實(shí)反映了工作中最常見的錯(cuò)誤
Compile Error 編譯錯(cuò)
公司里面總有人把編譯錯(cuò)誤的代碼提上來,固然現(xiàn)代git倉庫帶有鉤子做檢查,但自己不應(yīng)小心么?別人拉完代碼,掛了,很丟人的。
Runtime Error 運(yùn)行錯(cuò)
a) 真RE / panic
工作中常見,不是說整體套一個(gè)recover就完事兒了。應(yīng)該認(rèn)真想清楚為什么算法會(huì)panic。
b) Out of Memory 內(nèi)存超限
學(xué)了算法和數(shù)據(jù)結(jié)構(gòu)你才對內(nèi)存有“稍微深入一點(diǎn)的認(rèn)知”。時(shí)空平衡,是程序員永遠(yuǎn)的話題。
Wrong Answer 結(jié)果錯(cuò)
工作中達(dá)成目標(biāo)的路徑有很多,有時(shí)有最優(yōu)解、有時(shí)有次優(yōu)解;但WA則是說,不滿足目標(biāo),可能是邊界問題、也可能是對工作目標(biāo)理解有問題,這個(gè)反饋可能來自你的QA、PM、經(jīng)理,那么虛心接受。
Output?Limit Exceeded?輸出過多
是不是想起了,寫文件、寫日志,把磁盤打爆的時(shí)刻?
Time Limit Exceeded 超時(shí)
我們都是先解決問題再考慮性能優(yōu)化,工作中,500 QPS可能打不死你的服務(wù)。但有一天做了一個(gè)活動(dòng),瞬時(shí)QPS來了2w,你發(fā)現(xiàn):php fpm不夠了,上下游瘋狂超時(shí),DB load飆升了,消息隊(duì)列堵了,哪哪哪兒不對。
可能就是因?yàn)橐粋€(gè)算法的性能不足。所以,是不是要重視TLE起來呢?
// 示例 func twoSum(nums []int, target int) []int {var i intvar a [][]int// for i<10 {for { // TLEi /= i // RE: panici++fmt.Println("i:", i) // OLEa = append(a, make([]int, i)) // RE: OOM}return []int{i} // WA }四、如何面對“困難”知識的學(xué)習(xí)?
降階
降階很重要,和循序漸進(jìn)是一個(gè)意思;也就是說,今天“圖”我看不懂,那么是先去把“深搜”看了。
好了,是不是今天不僅要學(xué)“圖”,還要學(xué)“深搜”,要學(xué)的東西反而變多了?不然,無法達(dá)到我們今天可能必須要解決一個(gè)“圖”的問題之目的。
先解決問題,再考慮優(yōu)化
我再給你講一個(gè)和降階不一樣的:“今天學(xué)一半,即先把低處的果子摘了”。
力扣307,年輕人的第一個(gè)線段樹俗話說,沒有觀測就沒有優(yōu)化。
307. 區(qū)域和檢索 - 數(shù)組可修改?這題目要用線段樹,不用就是1228ms,用了就是508ms。
今天先把題解了,但我不需要學(xué)容量不確定線段樹的插入、Lazy-tag。
五、逆水行舟,不進(jìn)則退,慢進(jìn)也退
未來還需加油,按計(jì)劃推進(jìn):基礎(chǔ)算法、專業(yè)算法、工程實(shí)踐、架構(gòu)框架、領(lǐng)域設(shè)計(jì)。
六、一起學(xué)習(xí),變得更強(qiáng)
如果你需要進(jìn)英雄的星球,參加6月的集訓(xùn),請用我推薦碼。進(jìn)入星球后截圖告訴我。
1. 發(fā)你一個(gè)79.8元我的分成紅包以茲鼓勵(lì)。
2. 拉你進(jìn)英雄的星球核心群。
3. 給你做一個(gè)“社牛”歡迎:)
?
總結(jié)
以上是生活随笔為你收集整理的为什么要来学习算法?写在英雄的5月集训月末的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦三国测试服显示连接服务器失败,《梦三国
- 下一篇: php txt投票功能,php查询操作实