Given a 1-indexed array of integers numbers that is already sorted in non-decreasing order, find two numbers such that they add up to a specific target number. Let these two numbers be numbers[index1] and numbers[index2] where 1 <= index1 < index2 <= numbers.length. Return the indices of the two numbers, index1 and index2, added by one as an integer array [index1, index2] of length 2. The tests are generated such that there is exactly one solution. You may not use the same element twice. Your solution must use only constant extra space.
Example 1
Input: numbers = [2,7,11,15], target = 9
Output: [1,2]
Explanation: numbers[0] + numbers[1] = 2 + 7 = 9; 1-indexed that's [1,2].
Example 2
Input: numbers = [2,3,4], target = 6
Output: [1,3]
Explanation: 2 + 4 = 6, and they sit at 1-indexed positions 1 and 3, so the answer is [1,3].
Example 3
Input: numbers = [-1,0], target = -1
Output: [1,2]
Explanation: -1 + 0 = -1, at 1-indexed positions 1 and 2.
Because the array is sorted, start one pointer at each end. If their sum is too big, move the right pointer left to shrink it; if too small, move the left pointer right to grow it. The sorted order guarantees each move is safe.
Run checks all cases above. Submit evaluates all test cases.