package suanfa.array;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class TwoSum {
public static void main(String[] args) {
int[] nums = new int[]{0, 4, 3, 0};
int target = 0;
int[] result = twoSum(nums, target);

}

/**
 *利用map 实现 
  遍历map,如果map 中不存在 target-num[i] 则把num[i] 放入map 中,
  如果存在 则说明找到了目标 
 * @param arr
 * @param k
 * @return
 */
public static int[] twoSum(int[] arr, int k) {

    Map<Integer, Integer> map = new HashMap<>();

    for (int i = 0; i < arr.length; i++) {
        if (map.containsKey(k - arr[i])) {
            int p = i + 1;
            int q = map.get(k - arr[i]) + 1;
            if (p > q) {
                int tmp;
                tmp = p;
                p = q;
                q = tmp;
            }
            return new int[]{p, q};
        } else {
            map.put(arr[i], i);
        }

    }
    return new int[]{};
}

}