```
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
wrapper_nums = [(num, i) for i, num in enumerate(nums)]
wrapper_nums.sort()
i, j = 0, len(wrapper_nums) -1
while i < j:
curr_sum = wrapper_nums[i][0] + wrapper_nums[j][0]
if curr_sum == target:
return [wrapper_nums[i][1], wrapper_nums[j][1]]
elif curr_sum < target:
i += 1
else:
j -= 1
return None
```