目录
- 一、题目
- 二、思路
- 三、代码
一、题目
二、思路
由于数组是 非递减顺序排列 的,利用该先验知识,可以设置两个指针在数组的起始和末尾,相向前进,与暴力枚举相比可以加快寻找速度。
三、代码
class Solution {public int[] twoSum(int[] numbers, int target) {int n = numbers.length;int i = 0, j = n - 1;int sum;while (i < j) {sum = numbers[i] + numbers[j];if (sum > target) {j--;} else if (sum < target) {i++;} else {break;}}return new int[]{i + 1, j + 1};// 注意题目中数组下标是从 1 开始的}
}