python操作word题注样式_为什么leetcode中的python解法过于pythonic,而忽略了算法题主要关注的复杂度问题?...

@vczh 说的对,上leetcode就是学习算法的。

应该关心算法的复杂度,考虑代码的鲁棒性,各种edge case。

短的代码不意味着更容易理解,也不意味着效率更高。

我不反感这种一行的python代码,有时我也会想能不能用python写个更简短的版本, 看到大神的骚操作也会很佩服。

有段时间在学python的迭代器,leetcode上有一道判断一个字符串是否是另一个字符串的子序列的题,看到有大神这么写:

当时就觉得这和我学的东西对应了起来,感觉非常开心,也加深了我对迭代器的印象。

讨论区本身就是大家交流的地方,这种做法也无可厚非,不必太较真。

但是有些行为就很low了

leetcode不是竞赛平台,我很反感用一些‘旁门左道’来减少程序运行时间。

前两天在做一道题时,自认为想出了一个最优的解法。结果只打败了95%的人,点开最快的代码看到这么个操作:

他把测试样例用来卡复杂度的例子(有20000个整数,O(n ^ 2)的会超时),直接返回结果(应该是线下算好的)......

leetcode会展示测试用例这一点其实有利有弊。

这样做的确非常快,只用了1ms。比我的O(n)的解法12ms快了非常多。但是呢,没有体现一点算法的应用。

原作者会写正常的解法吗?我想是会的。因为他对时间有偏执,这类人可能更会在意算法的速度。但这种写法无疑影响了时间的分布,相当于给一锅粥里加入了一粒屎。

还是那句话,来leetcode是学习算法的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值