Two Sum II - Input Array Is Sorted - Problem
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.
Input & Output
Example 1 — Basic Case
$
Input:
numbers = [2,7,11,15], target = 9
›
Output:
[1,2]
💡 Note:
numbers[1] + numbers[2] = 2 + 7 = 9, so return indices [1,2] in 1-indexed format
Example 2 — Later Position
$
Input:
numbers = [2,3,4], target = 6
›
Output:
[1,3]
💡 Note:
numbers[1] + numbers[3] = 2 + 4 = 6, indices are [1,3] in 1-indexed format
Example 3 — Minimum Size
$
Input:
numbers = [-1,0], target = -1
›
Output:
[1,2]
💡 Note:
numbers[1] + numbers[2] = -1 + 0 = -1, return [1,2] for minimum array size
Constraints
- 2 ≤ numbers.length ≤ 3 × 104
- -1000 ≤ numbers[i] ≤ 1000
- numbers is sorted in non-decreasing order
- -1000 ≤ target ≤ 1000
- The tests are generated such that there is exactly one solution
Visualization
Tap to expand
Understanding the Visualization
1
Input
Sorted array [2,7,11,15] and target 9
2
Process
Use two pointers to efficiently find the pair
3
Output
Return 1-indexed positions [1,2]
Key Takeaway
🎯 Key Insight: Use the sorted property with two pointers - move left pointer right if sum is too small, right pointer left if sum is too large
💡
Explanation
AI Ready
💡 Suggestion
Tab
to accept
Esc
to dismiss
// Output will appear here after running code