题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。用java语言实现
时间: 2023-09-26 19:11:04 浏览: 106
两数之和:在该数组中找出和为目标值的那两个整数,并返回他们的数组下标
可以使用哈希表(HashMap)来解决这个问题。遍历数组,用目标值减去当前元素,如果差值在哈希表中存在,说明找到了这两个数,返回它们的下标即可。如果哈希表中不存在当前元素,则将当前元素和它的下标加入哈希表中。
Java代码如下:
```
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");
}
```
该算法的时间复杂度为 O(n),空间复杂度为 O(n)。
阅读全文