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

ソートされた配列を、Pythonで合計がkのペアに分割できるかどうかを確認します


数の配列があり、別の数がkであるとすると、すべてのペアの合計がkになるように、指定された配列をペアに分割できるかどうかを確認する必要があります。

したがって、入力がarr =[1、2、3、4、5、6]、k =7のような場合、(2、5)、(1、6)のようなペアを取ることができるため、出力はTrueになります。および(3、4)。

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

  • n:=arrのサイズ
  • nが奇数の場合、
    • Falseを返す
  • 低:=0、高:=n-1
  • 低い<高い間、実行する
    • arr [low] + arr [high]がkと同じでない場合、
      • Falseを返す
    • 低:=低+ 1
    • 高:=高-1
  • Trueを返す

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

def solve(arr, k):
   n = len(arr)
   if n % 2 == 1:
      return False
   low = 0
   high = n - 1
   while low < high:
      if arr[low] + arr[high] != k:
         return False
      low = low + 1
      high = high - 1
   return True
arr = [1, 2, 3, 4, 5, 6]
k = 7
print(solve(arr, k))

入力

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

出力

True

  1. Pythonで配列を等しい合計のサブ配列に分割できる合計を見つけます

    整数Aの配列があるとします。値sum[i]の場合、配列をsum sum [i]のサブ配列に分割できるように、sumのすべての値を見つける必要があります。配列を等しい合計のサブ配列に分割できない場合は、-1を返します。 したがって、入力がA =[2、4、2、2、2、4、2、6]のような場合、配列は次のサブ配列に分割できるため、出力は[6,8,12]になります。合計6、8、および12。これらは次のとおりです。[{2、4}、{2、2、2}、{4、2}、{6}] [{2、4、2}、{2、2 、4}、{2、6}] [{2、4、2、2、2}、{4、2、6 これを解決するには、次の手順に従います-

  2. ソートされた配列をPythonでマージ

    2つの並べ替えられた配列AとBがあるとします。それらをマージして、1つの並べ替えられた配列Cのみを形成する必要があります。リストのサイズは異なる場合があります。 たとえば、A=[1,2,4,7]およびB=[1,3,4,5,6,8]とすると、マージされたリストCは[1,1,2,3,4、 4,5,6,7,8] これを解決するには、次の手順に従います- ifine i:=0、j:=0 and end:=length of A – 1 =0であり、A[end]ではありません。 end:=end – 1 whilej