leetcode :两数之和 II - 输入有序数组

33 阅读1分钟

leetcode :两数之和 II - 输入有序数组

/**
 * @param {number[]} numbers
 * @param {number} target
 * @return {number[]}
 */

//测试用例子:[1,2,4,6,10] target = 10

var twoSum = function(numbers, target) {
//双位置移动方法:敌不动我动,我动敌不动
  let i = 0,
      j = numbers.length - 1;
     //这里重新设定了一个和
     //数组需要用到索引在初始的时候就要-1
  let sum = numbers[i] + numbers[j];
  while (i < j && sum != target) {
    if (sum < target) {
      i++;
    } else {
      j--;
    }
    sum = numbers[i] + numbers[j];
  }
  return [i, j];
};