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

49 阅读1分钟

leetcode-167.png

题目简述:有序数组中找到两个元素之和等于target,返回这两个元素的索引(下标 + 1)

题目思路很简单,因为是有序列表,所以就设置一头一尾两个指针,然后再判断跟target的大小关系做出相应的操作即可

var twoSum = function (numbers, target) {
  let left = 0, right = numbers.length - 1
  while (left < right) {
    let sum = numbers[left] + numbers[right]
    if (sum === target) {
      return [left + 1, right + 1]
    } else if (sum < target) {
      left++
    } else {
      right--
    }
  }
  return [-1, -1]
}