Java
 Computer >> コンピューター >  >> プログラミング >> Java

2つのソートされた配列から最も近いペアを見つけるJavaプログラム


ソートされた2つの配列から最も近いペアを見つけるための、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」という名前の関数が含まれています。この関数は、両方の配列を反復処理し、前に指定した数値に非常に近い数値になる合計を確認します。配列からのこのペアは出力として返されます。 main関数では、Demoクラスの新しいインスタンスが定義され、配列が定義され、それらの長さがそれぞれ2つの変数に割り当てられます。この関数は、配列、その長さ、および値を渡すことによって呼び出されます。関連するメッセージがコンソールに表示されます。


  1. 長方形の周囲を見つけるJavaプログラム

    この記事では、長方形の周囲を見つける方法を理解します。長方形の周囲長は、長方形のすべての辺の長さを加算して計算されます。 以下は長方形のデモンストレーションです。長方形の周囲は、長方形の2つの長さと2つの幅の全長です- 入力 入力が-であると仮定します The length of the sides of a rectangle are : 5, 8, 5, 8 出力 必要な出力は-になります Perimeter : 26 アルゴリズム Step 1 – START Step 2 – Declare 5 floating point variabl

  2. 2つのソートされた配列から最も近いペアを見つけるためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 − 2つの配列が与えられたので、2つのソートされた配列から最も近いペアを見つける必要があります 次に、以下の実装のソリューションを見てみましょう- 例 # sys module import sys # pair def print_(ar1, ar2, m, n, x):    # difference    diff=sys.maxsize    # index    l = 0    r = n-1 &