搜尋一對離兩個已排序陣列最近的數的 Java 程式
要查詢兩個排序陣列中最近的數對,Java 程式碼如下 −
示例
public class Demo {
void closest_pair(int my_arr_1[], int my_arr_2[], int arr_1_len, int arr_2_len, int sum){
int diff = Integer.MAX_VALUE;
int result_l = 0, result_r = 0;
int l = 0, r = arr_2_len-1;
while (l<arr_1_len && r>=0){
if (Math.abs(my_arr_1[l] + my_arr_2[r] - sum) < diff){
result_l = l;
result_r = r;
diff = Math.abs(my_arr_1[l] + my_arr_2[r] - result_l);
}
if (my_arr_1[l] + my_arr_2[r] > result_l)
r--;
else
l++;
}
System.out.print("The closest pair that matches two arrays is [" + my_arr_1[result_l] + ", " +
my_arr_2[result_r] + "]");
}
public static void main(String args[]){
Demo my_ob = new Demo();
int my_arr_1[] = {56, 78, 99, 11};
int my_arr_2[] = {33, 12, 69, 87};
int arr_1_len = my_arr_1.length;
int arr_2_len = my_arr_2.length;
int val = 79;
my_ob.closest_pair(my_arr_1, my_arr_2, arr_1_len, arr_2_len, val);
}
}輸出
The closest pair that matches two arrays is [56, 33]
一個名為 Demo 的類包含一個名為 ‘closest_pair’ 的函式,該函式遍歷兩個陣列,並檢查哪一對數之和接近於之前指定的一個數字。陣列中的這一對作為輸出返回。在主函式中,定義了 Demo 類的例項,定義了陣列,並將它們的長分別賦給了兩個變數。透過傳遞陣列、它們的長度和值來呼叫函式。在控制檯中顯示相關訊息。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP