我想这是一个言论自由的平台,每一个人都有权利发表自己的想法
(除非板规有规定不能发表个人想法)
你可以不认同我的理论,但不能以"你的言论可能有错,会误导别人"的理由,
想要限制别人发言的权利
这只是我的经验分享罢了,并不是什么教学文章,来这边的乡民都是成年人
有分办是非的能力!
或许我有说错的地方,你可以纠正我,但是你没有必要用这要的口气来回文!
※ 引述《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只是大公司筛选人最好的手段,它跟工作表现无关
网络上也有一堆外国人也质疑这样的面试过程
软件工程师到底有什么特别之处,面试要搞得跟大学入学考一样?
没有人说不学算法,只是考工作中几乎用不到的东西有什么意义?
通过这样的面试流程,就代表 "天资聪颖,高人一等",
就可以鼓吹 "你不够聪明,这行不适合你" 这类的想法?