解题日期:20.08.23 map

    • 这里需要一个思路转换,从「每次寻找到值相加后与target进行对比」,转变为「寻找值等于target-值的值」
    • 从这个题才发现,原来js也有map……
      1. /**
      2. * @param {number[]} nums
      3. * @param {number} target
      4. * @return {number[]}
      5. */
      6. var twoSum = function(nums, target) {
      7. let arr = []
      8. let map = new Map()
      9. nums.forEach(function (num, index) {
      10. if (map.has(num)) {
      11. num * 2 === target ? arr = [map.get(num), index] : null
      12. } else {
      13. map.set(num, index)
      14. if(map.has(target-num) && index !== map.get(target - num)) {
      15. arr = [map.get(target - num), index]
      16. }
      17. }
      18. })
      19. return arr;
      20. };