给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target
1. 有序数组的重要思想:双指针
有序数组,设置双指针(首尾指针
)由首尾两头向中间靠拢,若首指针和尾指针之和小于target,则首指针往中间靠(尾指针初始值就是数组最大值)
- 如果两个指针之和sum=target,则得到要求的结果
- 如果sum > target,移动尾指针(较大的元素),使sum变小
- 如果sum < target,移动首指针,使sum增大
参考代码
暴力破解方式
两次循环遍历
:先固定一个数值x,再循环找到target-x
哈希优化:target-x值用哈希
查找 即key-value键值保存数组值和下标的关系
- 二分查找: