Browse Source

add two_sum

yan chuanli 2 years ago
parent
commit
2e758e4d94
1 changed files with 26 additions and 8 deletions
  1. 26 8
      two_sum.py

+ 26 - 8
two_sum.py

@@ -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