Hone logo
Hone
Problems

Two Sum II: Finding Complementary Pairs in a Sorted Array

This challenge asks you to efficiently find two numbers in a sorted array that add up to a specific target value. This is a foundational problem in algorithm design, with applications in data analysis and searching for specific relationships within ordered datasets.

Problem Description

Given a 1-indexed array of integers numbers that is sorted in non-decreasing order, and an integer target, return the indices of the two numbers such that they add up to target.

Key Requirements:

  • You are guaranteed that each input would have exactly one solution.
  • You may not use the same element twice.
  • The returned indices should be 1-based (i.e., the first element is at index 1, the second at index 2, and so on).

Expected Behavior:

The function should return a list or array containing two 1-based indices.

Edge Cases to Consider:

  • The array might contain duplicate numbers, but you cannot use the same element twice (meaning you can use two different occurrences of the same number if they exist).
  • The target value could be negative.

Examples

Example 1:

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.

Example 2:

Input: numbers = [2, 3, 4], target = 6
Output: [1, 3]
Explanation: The sum of 2 and 4 is 6. Therefore index1 = 1, index2 = 3.

Example 3:

Input: numbers = [-1, 0], target = -1
Output: [1, 2]
Explanation: The sum of -1 and 0 is -1. Therefore index1 = 1, index2 = 2.

Constraints

  • 2 <= numbers.length <= 3 * 10^4
  • -1000 <= numbers[i] <= 1000
  • numbers is sorted in non-decreasing order.
  • -1000 <= target <= 1000
  • Exactly one solution exists.

Notes

The fact that the input array is sorted is a significant hint. Consider how you can leverage this property to your advantage. Think about algorithms that are efficient for sorted data structures. While a brute-force approach might work, aim for a more optimal solution in terms of time complexity.

Loading editor...
plaintext