'''
解题思路:
方法一:双指针法
方法二:
1、两个数下标i,j不能相同,用in操作要去重
2、去掉下标为i的值之后的序列,通过值反查索引j时,要考虑移位因素,如j>=i,是j=j+1
3、要有一个成功标记,success=1,循环结束i,j均有值,但不一定是解
'''
#
# @param numbers int整型一维数组
# @param target int整型
# @return int整型一维数组
#
class Solution:
def twoSum(self , numbers , target ):
# write code here
n = len(numbers)
if n<2:
return []
L = sorted(numbers)
i = 0
j = n-1
while i<j:
if L[i]+L[j]==target:
a = numbers.index(L[i])
numbers.pop(a)
b = numbers.index(L[j])
if b>=a:
b += 1
if a>b:
a,b = b,a
return a+1,b+1
elif L[i]+L[j]>target:
j -= 1
elif L[i]+L[j]<target:
i += 1
return []
'''
success = 0
for i in range(len(numbers)-1):
tmp = numbers[:i]+numbers[i+1:]
if target - numbers[i] in tmp:
j = tmp.index(target - numbers[i])
if j>=i:
j += 1
success = 1
break
if success==1:
if i<j:
return [i+1,j+1]
else:
return [j+1,i+1]
'''
#Solution().twoSum([3,2,4],6)