给定一个整数数组,目标值 找出和为目标值的两个整数 并返回他们的数组下标,保证性能
时间: 2024-10-15 20:03:52 浏览: 37
要在一个整数数组中找到两个元素,它们的和等于给定的目标值,你可以使用哈希表(HashMap)的数据结构来优化查找过程。这种方法的时间复杂度为O(n),其中n是数组的长度。以下是算法的步骤:
1. 创建一个空的HashMap用于存储每个元素及其索引。
2. 遍历整个数组:
a. 对于每个元素,计算目标值减去当前元素的差值。
b. 检查这个差值是否已经在HashMap中。如果存在,说明找到了一对符合条件的元素,直接返回这两个元素的索引。
c. 如果差值不在HashMap中,将其添加到HashMap中,键为元素值,值为该元素的索引。
3. 如果遍历完整个数组都没有找到匹配的元素对,返回null或表示找不到的提示。
以下是Java代码实现:
```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 given sum");
}
```
阅读全文
相关推荐


















