#S301. 两数之和

两数之和

题目描述

给定一个 升序数组 和一个目标值 target,从数组中找到两个数,使它们的和等于目标值。

提示

  1. 数组长度可能很大(例如:1n1051 ≤ n ≤ 10^5),暴力解法(O(n²))会超时。
  2. 时间复杂度要求 O(n),可使用双指针优化。
  3. 数组中的元素不会重复,如果存在多组数据相加等于对应的和,请输出字典序最小的那一组。

输入格式

  • 第一行输入一个整数 n,表示数组的长度。
  • 第二行输入 n 个整数,表示数组中的元素(按升序排列)。
  • 第三行输入一个整数 target,表示目标值。

输出格式

  • 输出两个整数,表示满足条件的两个数在数组中的索引(从 1 开始计数),用空格分隔。
  • 如果不存在解,输出 -1 -1

输入数据 1

6
1 3 4 5 7 8
11

输出数据 1

2 6

输入数据 2

4 
1 2 3 4 
8

输出数据 2

-1 -1