'''
解题思路:
方法一:双指针法
方法二:
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)