java解力扣17题
时间: 2024-09-06 22:04:48 浏览: 71
Java LeetCode(解力扣)是一个在线平台,提供各种编程题目供开发者练习算法和数据结构。第17题通常指的是“两数之和”,这是一个经典的问题,它的目标是给定一个整数数组nums和一个目标值target,在数组中找出两个不同的元素,它们相加等于目标值。
```java
public class Solution {
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];
// 如果complement已经在地图里,说明找到了一对和为目标值的元素
if (map.containsKey(complement)) {
return new int[]{map.get(complement), i};
}
// 否则,将当前元素和其索引加入到哈希表中
map.put(nums[i], i);
}
// 如果找不到这样的组合,返回null或者抛出异常
throw new IllegalArgumentException("No two sum solution");
}
}
```
阅读全文