萌新小白:
class Solution:
def twoSum(self, nums, target) :
nums_l = []
for i in range(len(nums)-1):
if (target -nums[i]) in nums[i+1:]:
nums_l.append(i)
nums_l.append(nums[i+1:].index(target -nums[i])+1+i)
break
return nums_l
由于是暴力解答,耗时方面较多。
在看题解中看到了大神们的字典模拟hash法,偷学了一手也贴上:
def twoSum(self, nums, target):
hash_dict = {}
for i,j in enumerate(nums):
hash_dict[j] = i
for k,l in enumerate(nums):
p = hash_dict.get(target-l)
if k!=p and p is not None:
return [k,p]
耗时相比暴力 快了近十倍。我觉得学习大神们的思维还是很可取的。
来源:CSDN
作者:小白点滴记录
链接:https://blog.csdn.net/wjp1073041977/article/details/104505494