算法挑战28: 两数之和(有序数组)

6 阅读1分钟

题目:

给你一个下标从 1 开始的整数数组 numbers ,该数组已按 ****非递减顺序排列 ** ,请你从数组中找出满足相加之和等于目标数 target 的两个数

思路:

双指针,聪明的穷举

代码:

var twoSum = function(numbers, target) {
    //利用双指针
    let left = 0;
    let right = numbers.length - 1 ;

    while(left < right){
        const sum = numbers[left] + numbers[right];
        if(sum === target )return [left+1,right+1];
        if(sum > target){
            right--;
        }else{
            left++;
        }
    }
};