两数和 Two Sum
给定一个数组nums
,一个target
,在nums
中寻找一组不重复的组合之和等于target
,数组中必然存在一组数满足要求。
in: nums = [2,7,11,15], target = 9
out:[0,1]
思路
借助map,在遍历的过程中寻找map中是否存在target-nums[i]
的数据,如果没有的话,就将nums[i]
和i
作为key,value放入map,如果存在,就直接捞出数据返回。
public int[] twoSum(int[] nums, int target){
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
if(map.containsKey(target-nums[i])){
return new int[]{map.get(target-nums[i]),i};
}
map.put(nums[i],i);
}
return new int[1];
}
Tag
Array