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

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
   while(l < m and r >= 0):
   # closest pair
      if abs(ar1[l] + ar2[r] - x) < diff:
         res_l = l
         res_r = r
         diff = abs(ar1[l] + ar2[r] - x)
   # pair sum
      if ar1[l] + ar2[r] > x:
         r=r-1
      else:
         l=l+1
   # Print the result
   print("The closest pair available is [",ar1[res_l],",",ar2[res_r],"]")
# main
ar1 = [1, 3, 6, 9]
ar2 = [11, 23, 35, 50]
m = len(ar1)
n = len(ar2)
x = 20
print_(ar1, ar2, m, n, x)

出力

The closest pair available is [ 9 , 11 ]

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

すべての変数はローカルスコープで宣言されており、それらの参照は上の図に示されています。

結論

この記事では、2つのソートされた配列から最も近いペアを見つけるためのPythonプログラムを作成する方法について学びました


  1. いいえが2の累乗であるかどうかを調べるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 数nが与えられた場合、与えられた数が2の累乗であるかどうかを確認する必要があります。 アプローチ 入力数を2で割り続けます。つまり、=n/2を繰り返します。 各反復で、n%2がゼロ以外になり、nが1でない場合、nは2の累乗ではないことを確認します。 nが1になると、2の累乗になります。 以下の実装を見てみましょう- 例 def isPowerOfTwo(n):    if (n == 0):       retur

  2. 円柱の周囲を見つけるためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 −直径と高さを入力し、円柱の周囲長を求めます 周囲は円柱の側面図、つまり長方形に他なりません したがって、周囲長=2 *(h + d) ここで、dは円柱の直径です hは円柱の高さです それでは、実装を見てみましょう 例 # Function to calculate the perimeter of a cylinder def perimeter( diameter, height ) :    return 2 * ( diameter + height ) # ma