import java.util.*;
public class Solution {
/**
*
* @param numbers int整型一维数组
* @param target int整型
* @return int整型一维数组
*/
public int[] twoSum (int[] numbers, int target) {
// write code here
if (numbers == null) return null;
// 用来存放之前扫描过的元素,key-存储的值,value-存储的索引
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < numbers.length; i++) {
Integer idx = map.get(target - numbers[i]);
if (idx != null) return new int[] {idx+1, i+1};
map.put(numbers[i], i);
}
return null;
}
}
解题思想:哈希存值+结果值判断

京公网安备 11010502036488号