
思路
由于不能使用两次相同的元素,所以我使用了hashmap的方式。首先遍历数组,如果目标值target减去数组中的值存在于map中,则直接返回目标值减去数组中的值所在的索引和当前的索引i,如果不存在则将当前的值和索引存入map。
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer,Integer> map = new HashMap<>();
int n = nums.length;
for(int i = 0; i < n; i++){
if(map.containsKey(target - nums[i])){
return new int[]{map.get(target - nums[i]),i};
}
map.put(nums[i],i);
}
return new int[]{0};
}
}