记第二次力扣算法:两数之和
第一种方法就是两个for循环,遍历两次
第二种方法就是只用一个循环,然后用target-nums[i]来查询是否在列表里,以此减少一个for循环
第三种方法就是运用字典。具体就是:先将不符合条件(即nums[i]+nums[i+1]!=target)的放进字典里,直到target-nums[i]的值出现在字典里时,返回该键的值和当前的i
代码如下:(python)
class Solution3(object):
def twoSum(self, nums, target):
n = len(nums)
dic = {}
for i in range(n):
a = target-nums[i]
if a in dic:
return [dic[a], i]
else:
dic[nums[i]] = i