题目要求:给定一个整数数组,返回两个数字的下标,使它们相加等于特定的目标值。
你可以假设每个输入都只有一个解决方案。
例如:给定 nums = [2, 11, 15, 7],目标值 target = 9,
因为 nums[0] + nums[1] = 2 + 7 = 9,所以返回 [0,1]。
这里是我的解决方案,但它似乎没有给出我期望的输出:
var sumTarget = function(array, target) {
var result = [];
var copy = array.slice();
var firstValue = array.shift();
if (array.length === 0) {
return result;
}
for (var i = copy.indexOf(firstValue) + 1; i < copy.length; i++) {
if (firstValue + copy[i] === target) {
Array.prototype.push.apply(result, [copy.indexOf(firstValue), i]);
}
}
return sumTarget(array, target);
};
[0, 3]
吗?或者更准确地说,是[[0, 3]]
。 - nonopolarity