两数之和绝对值最小
描述
给定一个从小到大的有序整数序列(存在正整数和负整数)数组 nums ,请你在该数组中找出两个数,其和的绝对值(|nums[x]+nums[y]|)为最小值,并返回这个绝对值。
每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
示例1:
输入:
-3 -1 5 7 11 15
输出:
2
说明:
因为 |nums[0] + nums[2]| = |-3 + 5| = 2 最小,所以返回 2
法一
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String[] str = sc.nextLine().split("\\s+");
int[] arr = new int[str.length];
for (int i = 0 ; i < arr.length ; i++) {
arr[i] = Integer.parseInt(str[i]);
}
int min = Integer.MAX_VALUE;
for (int i = 0 ; i < arr.length ; i++) {
for (int j = i + 1 ; j < arr.length ; j++) {
min = Math.min(min, Math.abs(arr[i] + arr[j]));
}
}
System.out.println(min);
}
}
}