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

京公网安备 11010502036488号