java实现-给定一个整数数组-nums-和一个目标值-target请你在该数组中找出和为目标值的那-两个-整数并返回他们的数组下标。
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");
}
解析:
使用哈希表(HashMap)来存储数组中的元素和它们的下标,遍历数组,对于每个元素,计算它与目标值的差值,判断差值是否在哈希表中,如果在,返回该差值的下标和当前元素的下标,如果不在,将当前元素及其下标存入哈希表中。时间复杂度O(n),空间复杂度O(n)。
原文地址: https://www.cveoy.top/t/topic/ieT 著作权归作者所有。请勿转载和采集!