首页 > 解决方案 > LeetCode EASY TwoSum 解释

问题描述

Leetcode 问题

我已经分析了 Leetcode 问题的答案,并询问我的推理是否正确。我试着分析 whennum = 2和 when 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] = 0。 // 结果[0] = 1

result[1] = k

结果[1] = 1. // 结果[1] = 0

return result

[0,1] // [1, 0]

所以答案应该是 [0,1] 但是当num = 7我得到 [1,0] 并且想知道为什么当我得到 [0,1] 和 [1,0] 时该函数被接受为正确答案。

标签: javascript

解决方案


因为您的答案不需要排序。[0,1] 和 [1,0] 都是正确的。


推荐阅读