为了账号安全,请及时绑定邮箱和手机立即绑定

求解释python 解决leetcode上一个问题的算法,和复杂度相关。

求解释python 解决leetcode上一个问题的算法,和复杂度相关。

肥皂起泡泡 2019-03-30 11:39:23
问题是leetcode上的一道算法题。https://oj.leetcode.com/problems/two-sum/我用的是python来写的,但是总是提示TimeLimitExceeded错误,当出现一个大数组的时候。这是我的解决方案。deftwoSum(num,target):foriinrange(0,len(num)):num1=num[i]num2=target-num1ifnum2innumand(i+1)!=num.index(num2)+1:return(i+1,num.index(num2)+1)不知道为什么是报错。这是我再网上看的别人的方法。deftwoSum(self,num,target):processed={}foriinrange(0,len(num)):iftarget-num[i]inprocessed:return[processed[target-num[i]]+1,i+1]processed[num[i]]=i我并不觉得好,因为它把数据又放到了dict中,每次再去读dict里面是否有这个num,但是为什么它的算法就比我的快呢?求解释。提前谢过。
查看完整描述

2 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

你可知num2innum和target-num[i]inprocessed的时间复杂度分别是多少?
                            
查看完整回答
反对 回复 2019-03-30
?
倚天杖

TA贡献1828条经验 获得超3个赞

从字典查找一个元素比从list中查找要快吧。字典不是类似hash表查找方式么
                            
查看完整回答
反对 回复 2019-03-30
  • 2 回答
  • 0 关注
  • 417 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信