1. 程式人生 > >leetcode167.兩數之和 II

leetcode167.兩數之和 II

'''
雙指標問題
升序的陣列
定義兩個指標l,r 初始位置是1和n
如果nums[l] + nums[l] > target  r --
如果nums[l] + nums[l] < target  l ++

'''
def twoSum(numbers, target):
    n = len(numbers)
    if n ==0 :
        return False
    l, r = 0, n-1
    while l < r and r < n:
        if numbers[l] + numbers[r] > target:
            r -= 1
        elif numbers[l] + numbers[r] < target:
            l += 1
        elif numbers[l] + numbers[r] == target:
            print([l+1,r+1])
            return [l+1,r+1]





numbers = [-3,3,4,90]
target = 0
twoSum(numbers, target)