楼主: Echooogo
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] Leetcode 268. Missing Number,run time complexity

🔗
ff-tt 2019-7-10 11:15:08 | 只看该作者
全局:
Echooogo 发表于 2019-7-10 08:57
好问题,不知道的说,我觉得能想到解法二的人真的挺聪明的

个人觉得第二种方法并不是最优的.

standard_num = (0+len(nums))*(len(nums)+1)/2
return standard_num - sum(nums)

上面的至少比方法二快,当初我记得我就是这么做的。
这就是我说的小学高斯公式。
回复

使用道具 举报

🔗
janni730708 2019-7-11 01:21:33 | 只看该作者
全局:
感谢lz分享!!!
回复

使用道具 举报

🔗
 楼主| Echooogo 2019-7-12 17:06:29 | 只看该作者
全局:
ff-tt 发表于 2019-7-10 11:15
个人觉得第二种方法并不是最优的.

standard_num = (0+len(nums))*(len(nums)+1)/2

大佬能想到这样的方法,机智!len(list) 是O(1),所以这个最后就是O(1)?
回复

使用道具 举报

🔗
ff-tt 2019-7-13 02:32:10 | 只看该作者
全局:
Echooogo 发表于 2019-7-12 17:06
大佬能想到这样的方法,机智!len(list) 是O(1),所以这个最后就是O(1)?

应该是O(n)
回复

使用道具 举报

🔗
 楼主| Echooogo 2019-7-13 08:13:34 | 只看该作者
全局:

不好意思我有点菜,为啥是O(n) 呢?
回复

使用道具 举报

🔗
ff-tt 2019-7-13 08:22:19 | 只看该作者
全局:
Echooogo 发表于 2019-7-13 08:13
不好意思我有点菜,为啥是O(n) 呢?

len()是O(1), sum是O(n), 所以最后是O(n)吧。我感觉。
回复

使用道具 举报

🔗
 楼主| Echooogo 2019-7-13 14:13:28 | 只看该作者
全局:
ff-tt 发表于 2019-7-13 08:22
len()是O(1), sum是O(n), 所以最后是O(n)吧。我感觉。

哦哦,现在理解了~~!回头看了一下公式,有 sum(nums), 所以是O(n)
机智
回复

使用道具 举报

全局:
第一个方法是O(n^2)。当inputsize比较大的的时候就会超时
回复

使用道具 举报

🔗
 楼主| Echooogo 2019-7-16 15:58:05 | 只看该作者
全局:
charleskaka 发表于 2019-7-15 18:36
第一个方法是O(n^2)。当inputsize比较大的的时候就会超时

嗯嗯,对,开始用leetcode之后才开始意识到逻辑的重要性。
然后并且发现,print会很拖慢运行速度
回复

使用道具 举报

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

本版积分规则

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