我正在寻找一种有效的方法来打印大量整数中的对,这些整数在某些条件下总和达到目标值:
我编写了一些意大利面条代码,它们在时间复杂度上似乎比两个循环更有效,但是,它不包括排序。我目前已经没有想法了。
我的问题如下:
输出可能很大,所以我想知道是否应该替换System.out.println().
我必须打印出所有的配对。一个 int 可以有很多对。输入最多可以增长到数十万个整数。
给定目标 12:
示例输入:
2 10 0 8 4 12 8
输出示例:
0 12
2 10
4 8
4 8
public static void myFindPair(int[] arr, int target) {
// Key = difference, value = index
Map<Integer, Integer> map = new HashMap();
for (int i = 0; i < arr.length; i++) {
int difference = target - arr[i];
map.put(difference, i);
System.out.print(arr[i]);
}
for (int i …Run Code Online (Sandbox Code Playgroud)