查看: 4444| 回复: 19
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] 为啥一样的写法我的runtime就是42.62%别人的就98%??

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
大家好,我又来问问题了,是3SUM closest那道
上图:我的写法和discussion写法




为什么呀,为什么我的这么慢
多谢大家大佬

上一篇:bloomberg phone interview
下一篇:DFS题目总结
推荐
mint0715 2019-10-11 02:38:26 | 只看该作者
全局:
主要问题:
1. 你遇到 sum == target的情况没有提前结束,而是继续算到底,浪费了很多时间。
2. 你一直在重复计算 “nums[i] + sum” , “target - nums[i] - sum”。而人家只用算一次。
次要问题:
Leetcode是个时变系统,单次运行时间看服务器心情。

评分

参与人数 1大米 +2 收起 理由
akdhfikbk + 2 满分!

查看全部评分

回复

使用道具 举报

推荐
stonefish 2019-10-10 22:47:34 | 只看该作者
全局:
我有过同样code连续submit三次每次结果都不一样的
回复

使用道具 举报

全局:
和网速有关系 和你的电脑也有关系…
回复

使用道具 举报

全局:
Java不知道,不过python经常是同样的code, runtime差异很大
回复

使用道具 举报

🔗
 楼主| akdhfikbk 2019-10-10 12:20:16 | 只看该作者
全局:
孙铂尧 发表于 2019-10-10 08:51
和网速有关系 和你的电脑也有关系…

还有这种操作?
回复

使用道具 举报

🔗
聚散浮云 2019-10-10 14:34:05 | 只看该作者
全局:
复杂度只是影响运行时间的一个因素,并不是全部。
常数级操作的效率,循环顺序不同带来的locality不同都是可能的原因,当然lc本身的测量也不是很准确了。
实在的想知道的话可以把两份代码都在自己机器上用profiler比较一下
回复

使用道具 举报

全局:
首先,复杂度跟运行时间百分比并不严格成正比,尤其是n本身不足够大的时候常数项反而可能影响更大
另外,如果完全相同的代码很有可能也会运行时间不一样,尤其是4ms到6ms这种,基本上看rp
回复

使用道具 举报

🔗
anhpp 2019-10-10 22:37:07 | 只看该作者
全局:
可以考虑消除一些重复计算 比如sum+ nums[i]和 Math.abs()
回复

使用道具 举报

🔗
新泽西学渣 2019-10-10 23:47:24 | 只看该作者
全局:
stonefish 发表于 2019-10-10 22:47
我有过同样code连续submit三次每次结果都不一样的

是这样的  经常第二次提交比第一次快
回复

使用道具 举报

🔗
新泽西学渣 2019-10-10 23:48:50 | 只看该作者
全局:
因为你写的是Python啊  如果想追求运行效率 不要写Python  我之前做过一个OA  用Python写的话 时间要求过不了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表