``
plain
var twoSum = function (nums, target) {
let datas = {};
for (let i = 0; i < nums.length; i++) {
for (let s = i + 1; s < nums.length; s++) {
if (target==nums[i] + nums[s]) {
return[i,s];
}
}
}
};
var nums= [2,7,11,15];
var target = 9;
// twoSum([2,7,11,15],13);
输出如下:
console.log(twoSum([2,7,11,15],13)); //2+11 [0,2]
console.log(twoSum([2,7,11,15],22)); //2+11 [1,3]
plain
简单粗暴,2遍for循环逐个遍历判断
var twoSum = function (nums, target) { l
et datas = {};
for (let i = 0; i < nums.length; i++)
{ for (let s = i + 1; s < nums.length; s++) {
if (target-nums[i] == nums[s])
{ return[i,s];
} } } };
<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">isNaN(6) true</font>
plain
var twoSum = function(nums, target) {
var keys = {};
for(var i = 0;i < nums.length; i++) {
var diff = target - nums[i];
// 判断差值diff在键值对中是否存在 是则找到匹配数字 数组第二个数字为7,下标为1
// keys[diff]=7,i=2
if(!isNaN(keys[diff])) {
// 返回减去的数字下标和差值数字的下标
return [keys[diff], i];
}
// 未出现匹配值 将数字存入键值对中以备后续判断
// 当前数字假设为第三个 nums[i]=7,keys[7]=1 i就是判断数字的下标 建立key值 方便下次使用
// 若是7的差值不存在,当前数字7的下标就是1,将1记录为7的下标
keys[nums[i]] = i;
}
};