节点 JS 在索引而不是索引处显示值
Node JS displaying value at index instead of indices
编写这个 2sums 代码以获得高效 O(N)
以下问题的时间复杂度算法
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Output: Because nums[0] + nums[1] == 9, we return [0, 1].
不幸的是,数组 nums
的值显示在输出中,而需要 indices
显示在输出
中
下面需要做哪些改动
let hashTwoSum = (array, sum) => {
let numsObj = {}
let nums = []
for(let i in array){
let addend = sum - array[i]
if (addend in numsObj){
nums.push([addend, array[i]])
}
numsObj[array[i]] = i
}
return nums
}
let array = [2,7,11,15]
console.log(hashTwoSum(array,9))
感谢您的帮助
此致,
卡罗琳
正如@jriend00 所说,不要使用for(... in ...)
循环来迭代数组。但是在你的情况下,你需要索引,你需要使用旧的 for
循环:for(let i = 0; i < array.length; i++)
。当你保存结果时,你需要同时推送 indices: nums.push([numsObj[addend], i])
.
这是一个完整的例子:
let hashTwoSum = (array, sum) => {
let numsObj = {}
let nums = []
for(let i = 0; i < array.length; i++){
let addend = sum - array[i]
if (addend in numsObj){
nums.push([numsObj[addend], i])
}
numsObj[array[i]] = i
}
return nums
}
let array = [2,7,11,15,6]
console.log(hashTwoSum(array,17))
这将输出:
[ [ 0, 3 ], [ 2, 4 ] ]
因为 2 + 15 和 11 + 6 都等于 17.
编写这个 2sums 代码以获得高效 O(N)
以下问题的时间复杂度算法
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Output: Because nums[0] + nums[1] == 9, we return [0, 1].
不幸的是,数组 nums
的值显示在输出中,而需要 indices
显示在输出
下面需要做哪些改动
let hashTwoSum = (array, sum) => {
let numsObj = {}
let nums = []
for(let i in array){
let addend = sum - array[i]
if (addend in numsObj){
nums.push([addend, array[i]])
}
numsObj[array[i]] = i
}
return nums
}
let array = [2,7,11,15]
console.log(hashTwoSum(array,9))
感谢您的帮助
此致,
卡罗琳
正如@jriend00 所说,不要使用for(... in ...)
循环来迭代数组。但是在你的情况下,你需要索引,你需要使用旧的 for
循环:for(let i = 0; i < array.length; i++)
。当你保存结果时,你需要同时推送 indices: nums.push([numsObj[addend], i])
.
这是一个完整的例子:
let hashTwoSum = (array, sum) => {
let numsObj = {}
let nums = []
for(let i = 0; i < array.length; i++){
let addend = sum - array[i]
if (addend in numsObj){
nums.push([numsObj[addend], i])
}
numsObj[array[i]] = i
}
return nums
}
let array = [2,7,11,15,6]
console.log(hashTwoSum(array,17))
这将输出:
[ [ 0, 3 ], [ 2, 4 ] ]
因为 2 + 15 和 11 + 6 都等于 17.