https://leetcode.com/problems/two-sum/description/
问题描述:
给定一个整数数组,返回两个数字的索引,使它们相加到特定目标。
您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素。
例:
给定nums = [2,7,11,15],target = 9,
因为nums [ 0 ] + nums [ 1 ] = 2 + 7 = 9,
返回[ 0,1 ]。
草稿写了一遍大概的意思,
var twoSum = function (nums, target) {
var numOne;
var numTwo;
for (var i = 0; i < nums.length; i++) {
for (var j = i+1; j < nums.length; j++){
if (nums[i] + nums[j] == target) {
numOne = i;
numTwo = j;
return {numOne,numTwo}
}
}
}
};
然后在leetcode上检测运行,提示错误,我输出的是对象,而题目要求的是数组。
所以我要将 return 后面接一个数组,提前就建好一个空的数组来接收预计的结果,最后添加结果给result并返回即可。
修改如下,通过,只是关于什么时间复杂度,空间复杂度,我还不曾了解。日后再补相关知识。
var twoSum = function (nums, target) {
var result = [];
for (var i = 0; i < nums.length; i++) {
for (var j = i+1; j < nums.length; j++){
if (nums[i] + nums[j] == target) {
result.splice(0,0,i,j);
return result
}
}
}
}