algorighm/leetcode/简单/两数之和(leetcode1).js

46 lines
1.0 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
给定一个整数数组 nums 和一个整数目标值 target请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
*/
/*
*/
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
const twoSum = function (nums, target) {
const n = nums.length;
for (let i = 0; i < n; i++) {
for (let j = 0; j < n; j++) {
if (j === i) continue;
if (nums[i] + nums[j] === target) return [i, j];
}
}
return -1;
};
const twoSum2 = function (nums, target) {
const n = nums.length;
const map = new Map();
for (let i = 0; i < n; i++) {
if (map.has(nums[i])) {
return [map.get(nums[i]), i];
}
map.set(target - nums[i], i);
}
return -1;
};
const nums = [2, 7, 11, 15];
const target = 9;
console.log(twoSum(nums, target));
console.log(twoSum2(nums, target));