|
@@ -6,21 +6,23 @@ def twoSum(nums, target):
|
|
|
j=-1
|
|
|
for i in range(lens):
|
|
|
if (target - nums[i]) in nums:
|
|
|
- # 如果num2=num1,且nums中只出现了一次,说明找到是num1本身。
|
|
|
+ # 如果num2=num1,且nums中只出现了一次,说明找到是num1本身
|
|
|
if (nums.count(target - nums[i]) == 1) & (target - nums[i] == nums[i]):
|
|
|
continue
|
|
|
else:
|
|
|
- # index(x,i+1)是从num1后的序列后找num2
|
|
|
- j = nums.index(target - nums[i],i+1)
|
|
|
+ # index(x,i+1)是从num1后的序列找num2
|
|
|
+ j = nums.index(target - nums[i], i+1)
|
|
|
break
|
|
|
- if j>0:
|
|
|
- return [i,j]
|
|
|
+ if j > 0:
|
|
|
+ return [i, j]
|
|
|
else:
|
|
|
return []
|
|
|
|
|
|
#
|
|
|
# def twoSum(nums, target):
|
|
|
# hashmap={}
|
|
|
+
|
|
|
+ #enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标
|
|
|
# for ind,num in enumerate(nums):
|
|
|
# hashmap[num] = ind
|
|
|
# for i,num in enumerate(nums):
|
|
@@ -30,9 +32,25 @@ def twoSum(nums, target):
|
|
|
|
|
|
|
|
|
def test_case_1():
|
|
|
- res = twoSum([2, 3, 1, 5, 8], 6)
|
|
|
- expect = [2, 3]
|
|
|
- assert expect == res
|
|
|
+ res1 = twoSum([2, 3, 1, 5, 8], 6)
|
|
|
+ expect1 = [2, 3]
|
|
|
+ assert expect1 == res1
|
|
|
+
|
|
|
+ res2 = twoSum([-2, 3, 1, 5, 8], -1)
|
|
|
+ expect2 = [0, 2]
|
|
|
+ assert expect2 == res2
|
|
|
+
|
|
|
+ res3 = twoSum([2, 1, 1, 5, 8], 2)
|
|
|
+ expect3 = [1, 2]
|
|
|
+ assert expect3 == res3
|
|
|
+
|
|
|
+ res4 = twoSum([2, -1, 1, 5, 8], 0)
|
|
|
+ expect4 = [1, 2]
|
|
|
+ assert expect4 == res4
|
|
|
+
|
|
|
+ res5 = twoSum([2, 0, 0, 1, -1], 0)
|
|
|
+ expect5 = [1, 2]
|
|
|
+ assert expect5 == res5
|
|
|
|
|
|
|
|
|
|