请设计一个函数,有两个参数分别为整数数组array和整数target,其功能在数组array中找出,和为目标值target的两个数,并返回它们的数组下标!(提示:返回双重数组,因为可能多个整数对的和为target)要求使用Java语言
时间: 2024-02-13 19:07:15 浏览: 70
两数之和:在该数组中找出和为目标值的那两个整数,并返回他们的数组下标
好的,我可以帮您设计这个函数。以下是Java语言的代码实现:
```java
public int[][] findPairs(int[] array, int target) {
Map<Integer, Integer> map = new HashMap<>();
List<int[]> list = new ArrayList<>();
for (int i = 0; i < array.length; i++) {
if (map.containsKey(target - array[i])) {
int[] pair = new int[]{map.get(target - array[i]), i};
list.add(pair);
}
map.put(array[i], i);
}
int[][] result = new int[list.size()][2];
for (int i = 0; i < list.size(); i++) {
result[i] = list.get(i);
}
return result;
}
```
该函数的思路是使用哈希表来存储数组元素和对应的下标,然后遍历一遍数组,对于每个元素,判断是否存在目标值与该元素的差值在哈希表中,如果存在,就说明找到了一对符合要求的整数对,将它们的下标存入一个动态数组中。最后将动态数组转换为二维数组并返回即可。
注意,该函数可能会返回多个符合要求的整数对,因此返回的是一个二维数组。
阅读全文