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
Two Sum II: Find Pair with Target Sum in Sorted Array2711151234Array is sorted, indices are 1-basedTarget: 92 + 7 = 9 ✓Found!Found!Output: [1, 2]Two pointers approach: O(n) time, O(1) space
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
Asked in
Amazon 45 Microsoft 38 Apple 32 Google 28
185.0K Views
High Frequency
~15 min Avg. Time
2.8K Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen