Two sum ii input array is sorted

  • solution #1 copied codes from two-sum
  • solution #2 tried to two pointers method
class Solution:
    def twoSum(self, numbers: List[int], target: int) -> List[int]:
        # Solution #1
        # copied codes from two-sum 
        # added "+1" when return
        # needed = {}
        # for i, n in enumerate(numbers):
        #     if n in needed:
        #         return [needed[n]+1, i+1]

        #     reminder = target - n
        #     needed[reminder] = i
        # return [-1, -1]

        #Solution #2 two pointers
        # i from head to tail 
        # j from tail move backwards 
        i = 0 
        j = len(numbers)-1

        while j>i:
            val = numbers[j] + numbers[i]
            if val == target:
                return[i+1,j+1]
            elif val > target:
                j -= 1
            else:
                i += 1
        return [-1, -1]