我分析了Leetcode问题的答案,并询问我的推理是否正确。我试着分析何时num = 2
和何时num = 7
。分析用//分隔开。
function twoSum(nums, target) {
var result = []
nums.forEach(function(num, i) {
var diff = target - num
var k = nums.indexOf(diff)
if (k > -1 && k !== i) {
result[0] = i
result[1] = k
}
})
return result
}
twoSum([2,7,11,15], 9)
var diff = target - num
对于2,diff =9-2= 7. /对于7,diff =9-7=2。
var k = nums.indexOf(diff)
indexOf(7) =1→k= 1. // indexOf(2) = 0→k=0。
if (k > -1 && k !== i)
1> -1 &1 !== 0.// 0> -1 && 0 !== 1。
result[0] = i
结果= 0。//结果=1
result[1] = k
result1 = 1. // result1 =0
return result
0,1 / 1,0
所以答案应该是0,1,但当num = 7
得到1,0时,我想知道为什么当我得到0,1和1,0时,函数被接受为正确的答案。
发布于 2020-03-16 09:15:28
因为你的答案不需要分类。0,1和1,0都是正确的。
发布于 2022-01-17 08:25:34
你可以用任何命令返回答案。
https://stackoverflow.com/questions/60703040
复制相似问题