在java中给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。并输出
时间: 2024-12-13 19:21:35 浏览: 4
两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个
在 Java 中,为了找到数组 `nums` 中和为目标值 `target` 的两个整数及其下标,你可以使用哈希表(HashMap)的数据结构。以下是解决这个问题的一个常见算法步骤:
1. 创建一个空的 HashMap,用于存储每个元素及其对应的索引。
2. 遍历输入数组 `nums`,对于每个元素:
- 如果目标值减去当前元素存在哈希表中,说明找到了一对和为目标值的元素,返回它们的索引(当前元素的索引和哈希表中对应元素的索引)。
- 否则,将当前元素添加到哈希表中,键为元素值,值为当前索引。
3. 如果遍历完整个数组都没有找到符合条件的组合,返回空或者异常(取决于你的程序设计)。
下面是一个简单的示例代码:
```java
import java.util.HashMap;
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);
}
throw new IllegalArgumentException("No pair found with sum " + target);
}
```
阅读全文