在js中写出 题目:给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。 输入:nums[2,7,11, 15],target9输出:[0,1] 解释:nums[8]+nums[1]-2+7=5
时间: 2024-12-17 14:32:01 浏览: 5
在JavaScript中,你可以通过双重循环或者哈希表的方式来解决这个问题,这是一个经典的“两数之和”问题。下面是一个简单的解决方案:
```javascript
function twoSum(nums, target) {
// 创建一个空对象用于存储每个数字及其索引
const numMap = {};
for (let i = 0; i < nums.length; i++) {
const complement = target - nums[i];
// 如果找到互补数字并且它已经在映射中,返回其索引
if (numMap[complement]) {
return [numMap[complement], i]; // 返回这两个数字的下标
}
// 将当前元素及其索引添加到映射中
numMap[nums[i]] = i;
}
// 没有找到解,返回null或undefined
return null;
}
// 测试例子
const nums = [2, 7, 11, 15];
const target = 9;
console.log(twoSum(nums, target)); // 输出:[0, 1]
```
在这个函数中,我们遍历数组`nums`,对于每一个元素,我们检查目标值减去它的结果是否已经在`numMap`中。如果在,说明找到了一对和为目标值的数,然后返回它们的下标;如果没有,则将当前元素及其索引加入到映射表中继续寻找。
阅读全文