123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import pytest
- def twoSum(nums, target):
- lens = len(nums)
- j=-1
- for i in range(lens):
- if (target - nums[i]) in nums:
-
- if (nums.count(target - nums[i]) == 1) & (target - nums[i] == nums[i]):
- continue
- else:
-
- j = nums.index(target - nums[i], i+1)
- break
- if j > 0:
- return [i, j]
- else:
- return []
-
- @pytest.mark.parametrize(
- "arr, target, expect",
- [
- ([-2, 3, 1, 5], -1, [0, 2]),
- ([2, 3, 1, 5], 6, [2, 3]),
- ([2, 1, 1, 5, 8], 2, [1, 2]),
- ([2, -1, 1, 5, 8], 0, [1, 2]),
- ([2, 0, 0, 1, -1], 0, [1, 2])
- ]
- )
- def test_cases(arr, target, expect):
- assert twoSum(arr, target) == expect
|