题目:NC61 两数之和
思路:
借助map,存储数字和对应的下标。
便利一遍数组:判断map中是否出现当前数字的另一半,如果出现,说明找到结果;否则把当前数组和下标存入map。
代码:
import java.util.*;
public class Solution {
/**
*
* @param numbers int整型一维数组
* @param target int整型
* @return int整型一维数组
*/
public int[] twoSum (int[] numbers, int target) {
// write code here
int[] res = new int[2];
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < numbers.length; i ++) {
int aim = target - numbers[i];
if (map.containsKey(aim)) {
res[0] = map.get(aim);
res[1] = i + 1;
return res;
}
else {
map.put(numbers[i], i + 1);
}
}
return res;
}
}