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;
    }
}