【双指针1】塔子哥的下标
前言
双指针算法概述:
双指针算法(双指针技术)是一种在处理线性数据结构(如数组、链表)时常用的算法策略。它通过同时使用两个指针,以不同的方式遍历数据结构,从而优化时间复杂度或简化问题的解决过程。双指针算法广泛应用于各种经典问题,如数组排序、链表操作、字符串处理等。
题目描述:
给定一个排序数组 nums 和一个目标值 target,请你使用双指针的方法,找到数组中和为目标值的两个数,并返回它们的下标。保证只有一个解。
如果没有符合条件的两个数,返回 −1。
注意:
- 数组中的下标是从 1 开始的,而不是从 0 开始。
- 如果存在多个解,返回第一个满足条件的下标。
输入
- 一个整数n,(1≤n≤105):表示数组的大小。
- 一个长度为n的排序数组nums,(1≤nums[i]≤109,数组已按升序排列)。
- 一个整数target,(1≤target≤2×109),表示目标值。
输出
- 如果找到两个数的和为目标值,返回这两个数的下标
- 如果没有满足条件的两个数,返回 -1。
示例
示例 1:
输入:
4
2 7 11 15
9
输出:
1 2
解释:数组中的 2 和 7 的和等于目标值 9,它们的下标分别为 1 和 2。
示例 2:
输入:
3
1 2 3
6
输出:
-1
解释:数组中的数字没有两个数的和为目标值 6。