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[]{}; }
}