美文网首页
算法——两数之和

算法——两数之和

作者: darkTi | 来源:发表于2022-04-06 17:47 被阅读0次
  • 找出数组中两数之和等于目标数的下标
const numbers = [3,6,15,20]
const target = 35
const twoSum = (numbers, target) => {
  // ...
}
console.log(twoSum(numbers, target))
// [2, 3] 或 [3, 2]

// 出题者保证
// 1. numbers 中的数字不会重复
// 2. 只会存在一个有效答案
image.png

1、建一个桶,桶里key是没有找到差值的元素,value是它的index;
2、比如从3开始,35-3=32,所以去桶里找是否有32,没有就把元素3放进去;
3、直到20,35-20=15,要去桶里找15,这时桶里有15,那么就找到它两的index了;

const arr = [3,6,15,20]
const target = 35

const twoSum = (arr, target)=>{
  const map = {}
  for(let i=0; i<arr.length; i++){
    const number = arr[i]
    const diffNum = target - number
    
    if(diffNum in map){
      //如果要找的差值已经在桶里
      const diffNumIndex = map[diffNum]
  
      return [diffNumIndex, i]
    }else{
      map[number] = i
    }
  }
  //到最后都没有在循环里return出去,那么肯定就没有啦~
  return []
}

console.log(twoSum(arr, target))

相关文章

  • 「算法」两数之和 & 两数之和 II

    00001 两数之和 题目描述 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只...

  • 算法:两数之和

    给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重...

  • 算法-两数之和

    这是一道LeetCode上的问题,详见两数之和,难度标注是简单,但是我思考到了一些比较复杂的情况,之后我会修改题目...

  • 算法--两数之和

    问题描述: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样...

  • 算法「两数之和」

    题目:给出数组nums和目标值target,找出和为目标值的两个数在数组中 想法:定义数组和目标值,遍历数组x使得...

  • 算法-两数之和

    算法对于程序的重要性不言而喻,所以从今天开始要一点一滴地积累自己的算法知识,同时也要充分地利用使用的程序语言所提供...

  • 算法:两数之和

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组...

  • 算法----两数之和

    给定一个数组,一个目标值,请在数组中找到和为目标值的两个数字,并返回他们的数组下标。 你可以假设每种输入只会对应一...

  • 算法——两数之和

    找出数组中两数之和等于目标数的下标 1、建一个桶,桶里key是没有找到差值的元素,value是它的index;2、...

  • ATRS第1周

    ATRS Algorithm算法题: 两数之和 - 力扣 (LeetCode) ``` function twoS...

网友评论

      本文标题:算法——两数之和

      本文链接:https://www.haomeiwen.com/subject/jilejrtx.html