167. 两数之和 II - 输入有序数组(双指针)

题目

167. 两数之和 II - 输入有序数组

思路

想象一个n维度的矩阵。
这道题目的思路是从右上角开始搜索。因为在这个位置,只有"一条路",比如,现在的sum大了,那就只能让j移动,因为i移动只会让总体sum变大。
类似思路的题目240. 搜索二维矩阵 II

代码

/**
 * @param {number[]} numbers
 * @param {number} target
 * @return {number[]}
 */
var twoSum = function(numbers, target) {
    let ans = [];
    let i = 0, j = numbers.length - 1;
    while(i <= numbers.length - 1 && j >= 0){
        if(numbers[i] + numbers[j] === target){
            ans.push(i + 1, j + 1);
            break;
        }else if(numbers[i] + numbers[j] > target) j--;
         else i++;   
    }
    return ans;
};
上一篇:列表生成式


下一篇:Leetcode双指针系列