最近跟着国外的导师做语音情感识别,开始踏上了学习python之路,之前一直不愿意接触python,感觉c++更牛一点,C++会了之后python很简单的就学会了,上手后两种感觉:1 真香 2不像想象的那么简单。忙完老师布置的任务之后,又要立一波flag了,每天都在leetcode练练手,不知道能坚持三天吗,不管了,flag还是要立的。
def twoSum(nums, target):
hashmap={}
for ind,num in enumerate(nums):
hashmap[num] = ind
for i,num in enumerate(nums):
j = hashmap.get(target - num)
if j is not None and i!=j:
return [i,j]
作者:lao-la-rou-yue-jiao-yue-xiang
链接:https://leetcode-cn.com/problems/two-sum/solution/xiao-bai-pythonji-chong-jie-fa-by-lao-la-rou-yue-j/
来源:力扣(LeetCode)
这个算法是我从题解里面找到的,我是菜鸟一个,暂时写不出来什么牛逼的算法,前期只能学习人家的了,记录下来,方便自己回忆,也为刚上手的同学提供一个方便。
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
print (i, element)
输出:
完整代码:
def twoSum(nums, target):
hashmap={} #创建一个空的哈希表
for ind,num in enumerate(nums):#将数组的数据和下标存入创建好的哈希表 ind代表下标 num代表数据
hashmap[num] = ind
for i,num in enumerate(nums): #利用目标值去减其中一个数,查找这个差是否存在于哈希表并存j
j = hashmap.get(target - num)
if j is not None and i!=j:
return [i,j]