一、输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
var array = [1,3,5,8,10]
var sum = 13
function getArray(array, sum) {
var result = []
for (var i = 0; i < array.length; i++) {
var target = sum - array[i]
if (array.indexOf(target) !== -1) {
result.push(array[i])
result.push(array[array.indexOf(target)])
break
}
}
return result
}
console.log(getArray(array, sum)) // [5, 8]
二、输入一个数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对,同时输出。
var array = [1,5,3,8,10]
var sum = 13
function getArray(array, sum) {
var result = []
for (var i = 0; i < array.length; i++) {
var target = sum - array[i]
if (array.indexOf(target) !== -1) {
result.push(array[i])
result.push(array[array.indexOf(target)])
console.log(array[array.indexOf(target)])
array.splice(i, 1)
array.splice(array.indexOf(target), 1)
i--
}
}
return result
}
console.log(getArray(array, sum)) // [ 5, 8, 3, 10 ]