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

2021/9/7 23:36:44

本文主要是介绍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;
};


这篇关于167. 两数之和 II - 输入有序数组(双指针)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程