最高效算法 ? 无招胜有招

作为一个日刷LeetCode追求算法极致效率的coder,每道题通过后会花很多时间去研究其他老哥的优秀算法。

已经做了不少题,也算摸清了一些提升算法效率的门道。自以为很牛逼,直到遇到了今天这位老哥……

这是一道水题,鱼皮用时9ms,战胜了81.28%的老哥。

然后按照惯例,鱼皮点开了最左边1ms的代码(效率高了近10倍!),准备一睹大佬的风采。

_(:з)∠)_ 真的给这位老哥跪了,他就是LeetCode这种时间限制不紧的平台上的一股清流。

打表法 是ACM竞赛中一种比较巧的解题方法,通常能够大大缩短代码执行时间,避免TLE。能用打表法解的题目并不多,但是利剑一旦出鞘,也是能闪瞎狗眼的!

所以,你还觉得你的算法是最高效算法么?也许同样一道题,其他人的算法并没有你的高效,但是可以通过打表去缩短时间,最后在效率上超越你。

鱼皮认为,最高效的算法是不存在的。打个不恰当的比方,算法就像架构一样,没有最高效、最完美的,只有最合适的。脱离架构谈业务,只能是耍流氓;同样,脱离了实际问题去谈算法,也很难得到最优解。因此,平时我们在学习算法的时候,尽可能地举一反三,尝试不同的解法,不断突破性能的极限,是大有裨益的。

当然,不多一些算法的知识储备的话,也是白搭。不知道上述独秀老哥什么来路,但是为了成为那样的老哥,还是要上下而求索啊!

发表评论

电子邮件地址不会被公开。