def twoSum(nums,target):
ans=[]
newnums=nums.copy()
newnums.sort()
left=0
right=len(newnums)-1
while left<right:
if newnums[left]+newnums[right]==target: #情况一:等于target
for i in range (0,len(nums)): #判断是否是第一个,找出在nums中对应下标
if nums[i]==newnums[left]:
ans.append(i+1)
break
for i in range (0,len(nums)): #判断是否是第二个
if nums[i]==newnums[right]:
ans.append(i+1)
break
break
if newnums[left]+newnums[right] > target: #情况二:大于target
right-=1
if newnums[left]+newnums[right] < target: #情况三:小于target
left+=1
else: #nums中没有目标数
return -1
return ans
target=20
nums=[1,2,3,5,9]
ans=twoSum(nums,target)
if ans==-1:
print("Not Found!")
else:
ans_list=list(ans) #python中元组不可更改,不能排序,可以转化为列表
ans_list.sort()
ans_sorted_tuple=tuple(ans_list)
print(ans_sorted_tuple)
target=7
(2, 4)
------------
target=20
Not Found!