我感觉 LeetCode 上面对于代码的要求苛刻

2015-02-13 15:01:14 +08:00
 wdy1184
新手,在leetcode上面做twosum.
第一次用迭代器
报错,超时
第二次用数组下标
报错,超时
要求苛刻我觉得很好!我会继续努力的.
6433 次点击
所在节点    程序员
32 条回复
phoeagon
2015-02-13 22:26:11 +08:00
@ivanlw 要排序啊。
phoeagon
2015-02-13 22:26:27 +08:00
@JackWindows 去spoj!
ember
2015-02-13 23:03:02 +08:00
@GtDzx 卧槽惊现轩哥
ivanlw
2015-02-14 07:50:19 +08:00
@phoeagon 排序就至少O(nlogn),比这样子慢
phoeagon
2015-02-14 09:06:03 +08:00
@ivanlw 你可以用hash table我就基数排序!
bugcoder
2015-02-14 21:53:27 +08:00
@ivanlw
@caizixian
@phoeagon
hashset 不行,输入里面有重复的元素
bugcoder
2015-02-14 21:57:11 +08:00
@DaniloSam
测试数据里面有: [0,4,3,0], 0
要求答案是唯一的
bugcoder
2015-02-14 22:07:39 +08:00
class Solution:

# @return a tuple, (index1, index2)
def twoSum(self, num, target):
sumlen = len(num)
for reverseindex in range(sumlen):
sub = target - num.pop()
if sub in num:
return (num.index(sub)+1, sumlen-reverseindex)

通过了,不过感觉不是最好的
bugcoder
2015-02-14 22:13:07 +08:00
@DaniloSam
为什么python code的格式都没有了呢,难道只能楼主才能保持格式?
DaniloSam
2015-02-15 08:54:12 +08:00
@bugcoder 要贴gist看来

我这么写答案是唯一啊,返回应该是1,4,这个case怎么了
wdy1184
2015-02-16 12:02:49 +08:00
果然要用hash表,不太会算时间复杂度,只是知道了这个是O(n)的复杂度.
wdy1184
2015-02-16 12:05:09 +08:00
@ant_sz 我用了,先排序,再找,可是要返回的是数组的下标,所以这个不管用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/170743

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX