给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那 两个整数,并返回它们的数组下标。数组中同一个元素在答案里不能重复出现。使用java用类编程
时间: 2023-10-20 15:22:29 浏览: 103
可以定义一个名为 `Solution` 的类,类中包含一个名为 `twoSum` 的静态方法,用于解决这个问题。
在 `twoSum` 方法中,我们可以使用哈希表来记录数组中每个元素的值和对应的下标。然后遍历数组,对于每个元素,我们可以通过哈希表快速查找到与其相加等于目标值的另一个元素的下标。
以下是一个示例代码:
```java
import java.util.HashMap;
public class Solution {
public static 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);
}
return null;
}
}
```
在主函数中,我们可以调用 `Solution` 类的 `twoSum` 方法,并传入数组和目标值作为参数。方法将返回一个包含两个下标值的整数数组,这两个下标值对应的元素之和等于目标值。如果无解,则返回 null。
以下是一个示例代码,演示如何使用该类来解决这个问题:
```java
public class Main {
public static void main(String[] args) {
int[] nums = {2, 7, 11, 15};
int target = 9;
int[] result = Solution.twoSum(nums, target);
if (result != null) {
System.out.println("[" + result[0] + ", " + result[1] + "]");
} else {
System.out.println("No solution found.");
}
}
}
```
输出:
```
[0, 1]
```
阅读全文