我想這是一個言論自由的平台,每一個人都有權利發表自己的想法
(除非板規有規定不能發表個人想法)
你可以不認同我的理論,但不能以"你的言論可能有錯,會誤導別人"的理由,
想要限制別人發言的權利
這只是我的經驗分享罷了,並不是什麼教學文章,來這邊的鄉民都是成年人
有分辦是非的能力!
或許我有說錯的地方,你可以糾正我,但是你沒有必要用這要的口氣來回文!
※ 引述《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只是大公司篩選人最好的手段,它跟工作表現無關
網路上也有一堆外國人也質疑這樣的面試過程
軟體工程師到底有什麼特別之處,面試要搞得跟大學入學考一樣?
沒有人說不學演算法,只是考工作中幾乎用不到的東西有什麼意義?
通過這樣的面試流程,就代表 "天資聰穎,高人一等",
就可以鼓吹 "你不夠聰明,這行不適合你" 這類的想法?