帮我用java写一段代码,给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
时间: 2023-08-23 10:06:42 浏览: 101
两数之和:在该数组中找出和为目标值的那两个整数,并返回他们的数组下标
在这里,我们可以使用哈希表来解决此问题。
代码如下:
```java
import java.util.HashMap;
class Solution {
public int[] twoSum(int[] nums, int target) {
// 创建哈希表
HashMap<Integer, Integer> map = new HashMap<>();
// 遍历数组
for (int i = 0; i < nums.length; i++) {
// 计算需要的目标数字
int complement = target - nums[i];
// 如果哈希表中存在该数字,则找到了答案
if (map.containsKey(complement)) {
return new int[] { map.get(complement), i };
}
// 否则,将当前数字放入哈希表中
map.put(nums[i], i);
}
// 如果没有找到答案,则返回 null
return null;
}
}
```
在上面的代码中,我们使用了一个哈希表来存储每个数字的值和其在数组中的下标。然后,我们遍历数组中的每个数字,并计算需要的目标数字。如果哈希表中存在该数字,则找到了答案,并返回下标。否则,我们将当前数字放入哈希表中。
这是一个 O(n) 的解决方案,其中 n 是数组中的数字数量。
阅读全文