import java.util.*; public class Solution { /** * * @param numbers int整型一维数组 * @param target int整型 * @return int整型一维数组 */ public int[] twoSum (int[] numbers, int target) { // 思路1 双层循环实现 效率偏低 int[] res = new int[2]; // for(int i = 0;i< numbers.length - 1;i++){ // int cur = numbers[i]; // for(int j = i + 1;j<numbers.length;j++){ // if(cur + numbers[j] == target){ // res[0] = i + 1; // res[1] = j + 1; // } // } // } // 思路2 借助Hash表 一次循环实现 空间换时间 HashMap<Integer,Integer> hash = new HashMap<>(); for(int i = 0;i<numbers.length;i++){ if(hash.containsKey(target - numbers[i])){ res[0] = hash.get(target - numbers[i]) + 1; res[1] = i + 1; } else { hash.put(numbers[i],i); } } return res; } }