import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param nums int整型一维数组
* @param target int整型
* @return int整型一维数组
*/
public int[] twoSum(int[] nums, int target) {
int[] result = new int[2];
// 创建HashMap存储数组元素值与对应的索引
// 键: 数组元素值, 值: 元素对应的索引
HashMap<Integer, Integer> map = new HashMap<>();
// 遍历数组,寻找目标组合
for (int i = 0; i < nums.length; i++) {
// 计算当前元素需要的互补值
int complement = target - nums[i];
// 检查互补值是否已经在HashMap中
if (map.containsKey(complement)) {
// 找到符合条件的两个数,返回它们的索引(注意题目要求索引从1开始)
result[0] = map.get(complement) + 1;
result[1] = i + 1;
return result;
}
// 将当前元素和索引存入HashMap
map.put(nums[i], i);
}
// 题目假设一定有解,此处返回默认数组
return result;
}
}