Given an array of integers
numbers that is already sorted in ascending order, find two numbers such that they add up to a specific
Return the indices of the two numbers (1-indexed) as an integer array
answer of size
1 <= answer < answer <= numbers.length.
You may assume that each input would have exactly one solution and you may not use the same element twice.
Input: numbers = [2,7,11,15], target = 9 Output: [1,2] Explanation: The sum of 2 and 7 is 9. Therefore index1 = 1, index2 = 2.
Input: numbers = [2,3,4], target = 6 Output: [1,3]
Input: numbers = [-1,0], target = -1 Output: [1,2]
2 <= numbers.length <= 3 * 104
-1000 <= numbers[i] <= 1000
numbersis sorted in increasing order.
-1000 <= target <= 1000
- Only one valid answer exists.
Use two pointers technique.
class Solution: def twoSum(self, numbers: List[int], target: int) -> List[int]: i = 0 j = len(numbers) - 1 while i < j: if numbers[i] + numbers[j] < target: i += 1 elif numbers[i] + numbers[j] > target: j -= 1 else: return [i + 1, j + 1] return 
- Time Complexity: O(N).
- Space Complexity: O(1).