给定一个整数数组 nums 和一个目标值 target,请给出该数组中和为目标值的两个元素的下标。
时间: 2023-08-14 22:29:44 浏览: 124
数组中数值和下标相等的元素.md
好的,这是一道经典的算法题,我们可以使用哈希表(HashMap)来解决。具体思路是:遍历数组,对于每个元素,判断 target 与当前元素的差值是否在哈希表中,如果在,返回差值对应的下标和当前元素的下标,如果不在,则将当前元素添加到哈希表中。
下面是 Java 代码示例:
```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),因为只需要遍历一遍数组即可。
阅读全文