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

Pythonでa+b + c =sumとなるように、異なる3つの配列から3つの要素を見つけます


3つの配列A、B、Cと、「sum」という別の値があるとします。a+ b + cとなるような3つの要素a、b、cがあるかどうかを確認する必要があります。 =合計とa、b、cは3つの異なる配列の下にある必要があります。

したがって、入力がA =[2,3,4,5,6]、B =[3,4,7,2,3]、C =[4,3,5,6,7]の場合、合計=12の場合、4 + 2 + 6 =12であり、4、2、6はそれぞれA、B、Cから取得されるため、出力はTrueになります。

これを解決するには、次の手順に従います-

  • 0からAのサイズの範囲のiの場合、実行

    • 0からBのサイズの範囲のjについては、次のようにします

      • 0からCのサイズまでの範囲のkについては、次のようにします

        • A [i] + B [j] + C [k]が合計と同じである場合、

          • Trueを返す

  • Falseを返す

理解を深めるために、次の実装を見てみましょう-

def is_sum_from_three_arr(A, B, C, sum):
   for i in range(0 , len(A)):
      for j in range(0 , len(B)):
         for k in range(0 , len(C)):
            if (A[i] + B[j] + C[k] == sum):
               return True
   return False
A = [2,3,4,5,6]
B = [3,4,7,2,3]
C = [4,3,5,6,7]
sum = 12
print(is_sum_from_three_arr(A, B, C, sum))

入力

[2,3,4,5,6], [3,4,7,2,3], [4,3,5,6,7], 12

出力

True

  1. ペア要素がPythonの異なるBSTにあるように、指定された合計を持つペアを検索します

    2つの二分探索木が与えられ、別の合計が与えられたとします。各ペア要素が異なるBSTに存在する必要があるように、与えられた合計に関してペアを見つける必要があります。 したがって、入力がsum=12のような場合 その場合、出力は[(6、6)、(7、5)、(9、3)]になります。 これを解決するには、次の手順に従います- 関数solve()を定義します。これには、trav1、trav2、Sumが必要です。 左:=0 右:=trav2のサイズ-1 res:=新しいリスト 左=0の間、実行 trav1 [left] + trav2 [right]がSumと

  2. Pythonでgcd(N ^ M、N&M)が最大になるような正の数Mを見つけます

    数Nがあるとすると、gcd(N ^ M、N&M)が可能な限り大きく、m