题解 | #两数之和#
两数之和
https://www.nowcoder.com/practice/20ef0972485e41019e39543e8e895b7f
import java.util.*; public class Solution { /** * @param numbers int整型一维数组 * @param target int整型 * 输入:[3,2,4],6 * 返回值: * [2,3] * 说明: * 因为 2+4=6 ,而 2的下标为2 , 4的下标为3 ,又因为 下标2 < 下标3 ,所以返回[2,3] * @return int整型一维数组 */ public int[] twoSum(int[] numbers, int target) { int[] result = new int[2]; Map<Integer, Integer> preMap = new HashMap<>(); for (int i = 0; i < numbers.length; i++) { // 使用key包含的方式 if (preMap.containsKey(target - numbers[i])) { // 取出key的值,也就是index result[0] = preMap.get(target - numbers[i]); result[1] = i + 1; } preMap.put(numbers[i], i + 1); } // write code here return result; } }