用到一种数据结构HashMap,用来存储值和索引,方便返回索引值。时间复杂度为O(n)
public int[] twoSum(int[] nums, int target) {
Map<Integer,Integer> map = new HashMap<>();
for(int i=0;i<nums.length;i++) {
int c = target - nums[i];
if(map.containsKey(c)) {
return new int[] {map.get(c),i};
}
map.put(nums[i], i);
}
throw new IllegalArgumentException();
}