class FindClosestPairExample {
public static void findAndPrintClosest(int[] arrayOne, int expectedSum) {
int lenOne = arrayOne.length; //数组长度,默认全部填满。
int diff = Integer.MAX_VALUE; //定义两数与期望值的差值;默认取最大整数
int resultOne = 0; //第一个元素
int resultTwo = 0; //另一个元素
int leftIndex = 0; //左边开始的数组下标
int rightIndex = lenOne - 1; //右边开始的数组下标
while (leftIndex < lenOne && rightIndex >= 0 && leftIndex != rightIndex) {//若左下标不超过数组长度,右下标不小于0,并且左右元素不相等
if (Math.abs(arrayOne[leftIndex] + arrayOne[rightIndex] //若两个数的和减去期望值 所得的差值,比当前的差值小,说明找到了更合适的元素组合
- expectedSum) < diff) {
resultOne = arrayOne[leftIndex];//更新结果值
resultTwo = arrayOne[rightIndex];
diff = Math.abs(resultOne + resu
给定一个整数sum, 从有N个有序元素的数组中寻找元素a,b,使得a+b的结果最接近sum
最新推荐文章于 2023-07-24 09:52:01 发布