和为S的两个数字

2018-10-13  本文已影响0人  小小的白菜

输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。

输出描述

对应每个测试案例,输出两个数,小的先输出。

  function FindNumbersWithSum(array, sum) {
    if (!array || !array.length) {
      return []
    }
    let i = 0
    let j = array.length - 1
    let result = []
    while (i < j) {
      if (array[i] + array[j] === sum) {
        result.push(array[i], array[j])
        break
      }
      if (array[i] + array[j] > sum) {
        j--
      }
      if (array[i] + array[j] < sum) {
        i++
      }
    }
    return result
  }
上一篇 下一篇

猜你喜欢

热点阅读