看板 Soft_Job 關於我們 聯絡資訊
我想這是一個言論自由的平台,每一個人都有權利發表自己的想法 (除非板規有規定不能發表個人想法) 你可以不認同我的理論,但不能以"你的言論可能有錯,會誤導別人"的理由, 想要限制別人發言的權利 這只是我的經驗分享罷了,並不是什麼教學文章,來這邊的鄉民都是成年人 有分辦是非的能力! 或許我有說錯的地方,你可以糾正我,但是你沒有必要用這要的口氣來回文! ※ 引述《drajan (EasoN)》之銘言: : Linked list問題少不代表是因為效能什麼鬼的因素 邏輯錯誤 不好意思,這裡是我表達不好,我想表達的是 immutable的資料結構真的很難做到效能改善 在functional programming世界中,所有東西都是immutable 所以才說,Leetcode的解題技巧,在functional programming內幾乎沒有用 Linked list問題少,是跟它的本質有關(搜尋要花O(n)),所以能改善的有限 : 用到多台機器跟race condition不是「勢必」的關係 看演算法跟資料結構的設計 (你有聽過CRDT嗎?) 這裡我想表達的是,可以在程式碼都不改的前提下, 把Leetcode最佳解的答案丟到多執行環境跑嗎? 很難,因為大部分的Leetcode最佳解是不斷修改同一個資料結構 : 對也不對 同上述說法 : Lock一定會降效能 但是不lock不見得會產生錯誤結果(我們說inconsistency ) 是沒錯,但是結果一定不是你想要的 就像多個執行緒對同一個變數加一,你可以不上鎖,但是結果是隨機的 : 錯誤 例如DP你一定可以寫出Top down 跟 bottom up版本的,top down就是要用遞迴 你知道top down解在OA一定不會過,甚至在interviewer會要求你不要用遞迴解嗎? : 例如binary tree問題 也多是用遞迴來解 : 還有dfs 你不用遞迴嗎?錯的離譜 我並沒有說都不用遞迴,我只是強調在Leetcode中遞迴不受鼓勵的 你舉的binary tree/dfs只有遞迴解,不用遞迴解不然你想要怎麼解? 你有碰過有些題目用遞迴解根本很簡單,但是結果卻是timeout? 就要你想盡辦法把它換成迴圈版本或是DP 幾乎所有刷題者都會說在面試時盡量不要給遞迴解,相關文章網路一堆 : : functional programmer應該會覺得心裡不是滋味 : : 幾乎都是招募imperative programmer才在考白板題的 : 通篇胡說 請問你是functional programmer嗎? 你有用過Haskell去解Leetcode嗎? 你懂何謂pure funcrtional programming嗎? 如果你沒有相關經驗,我也請你不要胡說! : 不爽不要做 想做就乖乖證明你比其他人還行 : 這些都是花時間就能學會的東西 你學不會代表天資不夠 可以早點換過行業做會比較有成就感 為何不能好好理性討論問題,有必要跟吃到炸藥一樣在亂噴嗎? 我的文章只是想分享,考Leetcode只是大公司篩選人最好的手段,它跟工作表現無關 網路上也有一堆外國人也質疑這樣的面試過程 軟體工程師到底有什麼特別之處,面試要搞得跟大學入學考一樣? 沒有人說不學演算法,只是考工作中幾乎用不到的東西有什麼意義? 通過這樣的面試流程,就代表 "天資聰穎,高人一等", 就可以鼓吹 "你不夠聰明,這行不適合你" 這類的想法? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.90.31.220 (泰國) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1575132565.A.720.html
corupted5354: 噴人刷存在 12/01 01:17
asadman1523: 噴人才睡得著吧 壓力太大 12/01 01:52
bibo9901: 別污辱FP 12/01 02:10
GGFACE: 不同意這篇 12/01 02:11
a731977: 兩邊都有部分不同意0.0 12/01 02:50
sean2449: production寫遞迴也不鼓勵...身為一個面試官我能跟你說 12/01 03:59
sean2449: ,完全沒有寫遞迴不好這回事 12/01 03:59
sean2449: web backend大多是stateless single thread+async...誰 12/01 04:05
sean2449: 在乎multi-thread? 12/01 04:05
CoNsTaR: 話說 Haskell 也不是 pure XDD 12/01 05:42
drajan: 口氣不好我道歉 但你這篇還是一堆錯誤 我只糾正一點就好: 12/01 05:44
drajan: 不是Leetcode認同的(Accepted)就是最好的 在面試過程能 12/01 05:44
drajan: 清楚表達你做不同選擇時所考慮的trade off 才重要 剩下的 12/01 05:44
drajan: 我不多說了 另外FP我很愛 我認為每個工程師都該學一學 12/01 05:44
chocopie: 幫補血,自古以來文人相輕 12/01 07:51
starburs: 幫補血 d大和原po誰對是另一回事 我只知道d大的語氣一定 12/01 08:48
starburs: 不對 12/01 08:48
yamakazi: 通常長輩被指正後也會說對方口氣不好 12/01 09:21
yamakazi: 說「會誤導別人」這句話本身也沒有限制你發言的權利 自 12/01 09:22
yamakazi: 己放大解讀? 12/01 09:22
yamakazi: 口氣這種東西根本主觀感覺 除非他有人身攻擊那你就直接 12/01 09:28
yamakazi: 他 不然抱怨口氣很主觀意識 12/01 09:28
plsmaop: 這樣就覺得被限制??? 12/01 09:36
steve1012: 戰語氣太無聊 12/01 11:02
oneheat: 戰起來喔!! 12/01 11:24
oneheat: 下次要戰之前先貼薪資單啦,說服力高一點,如果可以附上 12/01 11:25
oneheat: 公司就更強了 12/01 11:25
xsoho: 玻璃心碎裂 12/01 11:49
AudiA4Avant: 以我的經驗如果要處理的資料量不是很大,演算法級的優 12/01 11:51
AudiA4Avant: 化說真的效益不高 12/01 11:51
AudiA4Avant: 而且很多O(N)的優化都是拿空間複雜度換的 12/01 11:52
keke0421: 不同意這篇 很多地方有誤 12/01 11:57
oneheat: XD ...樓上應該先定義什麼才叫正確吧 12/01 11:58
oneheat: 整天說資料量不大,到底多大叫資料量大啦 12/01 11:58
freef1y3: 遞迴解會timeout是說像費氏數列那種? 12/01 13:54
freef1y3: 還是DP不把算過的結果記起來? 12/01 13:55
oneheat: 不剪枝一定timeout的啊,通常這種就是要加上剪枝的處理 12/01 14:02
Hsins: 看不出原來那篇語氣多兇了... 12/01 14:29
tashia: 不同意這篇+1,不懂裝懂的感覺 12/01 15:06
siriusu: 兩篇都有點不同意 +1 給推好了 12/01 17:07
stosto: 可以不遞迴就不用,但是效率要夠好,現在的環境下自己想 12/01 23:31
stosto: 的資料跟客戶都相差甚遠.... 12/01 23:31
longlyeagle: ? 12/02 12:38