在java中给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
时间: 2024-12-12 07:25:59 浏览: 50
在 Java 中,你可以使用哈希表(HashMap)来解决这个问题。这个算法叫做“两数之和”(Two Sum),它的基本思路是遍历数组,对于每个元素,检查目标值减去当前元素是否已经在哈希表中存在。如果存在,那么找到了一对满足条件的数,返回这两个元素的索引;如果不存,则将当前元素及其索引加入哈希表中继续查找。
以下是简单的 Java 代码示例:
```java
import java.util.HashMap;
import java.util.Map;
public class Solution {
public int[] twoSum(int[] nums, int target) {
Map<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 two sum solution");
}
}
```
在这个代码中,`twoSum` 方法首先创建一个空的哈希表 `map`。然后从数组的第一个元素开始,尝试找到另一个元素使得它们的和等于 `target`。如果找到,就直接返回这两个元素的索引;如果没有找到,就将当前元素及其索引添加到哈希表中,然后移动到下一个元素。如果遍历完整个数组都没有找到合适的组合,说明不存在这样的解,会抛出异常。
阅读全文
相关推荐



















