哈希

二数之和,给定一个整数数组,返回两个数字的索引,使它们相加到特定目标。
原题:1 https://leetcode.com/problems/two-sum/
public static int[] twoSum(int[] numbers, int target) {
Map map = new HashMap<>(numbers.length * 2);
for (int i = 0; i < numbers.length; i++) {
Integer firstIndex = map.get(target - numbers[i]);//目标值依次循环与数组的值相减,与map的key匹配
if (firstIndex == null)//如果不存在,把当前数组的值放入key,索引放入value
map.put(numbers[i], i);
else//匹配直接取出key对应的索引和当前的索引
return new int[]{firstIndex, i};
}
return null;
}

你可能感兴趣的:(哈希)