题目

image.png

方法一:Map()

  1. onst twoSum = (nums, target) => {
  2. // 1. 构造哈希表
  3. const map = new Map(); // 存储方式 {need, index}
  4. // 2. 遍历数组
  5. for (let i = 0; i < nums.length; i++) {
  6. // 2.1 如果找到 target - nums[i] 的值
  7. if (map.has(nums[i])) {
  8. return [map.get(nums[i]), i];
  9. } else {
  10. // 2.2 如果没找到则进行设置
  11. map.set(target - nums[i], i);
  12. }
  13. }
  14. };
  15. console.log(twoSum([2, 7, 11, 15], 9)); // [0, 1]

方法二:双重for循环

  1. var twoSum = function(nums, target) {
  2. for (let i = 0; i < nums.length; i++) {
  3. for (let j = i + 1; j < nums.length; j++) {//避免下标值相同
  4. if (nums[i] + nums[j] === target) {
  5. return [i, j]
  6. }
  7. }
  8. }
  9. };