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

Pythonで絶対差がKsになるように、配列を2つのサブ配列に分割できるかどうかを確認します


整数を含む配列「input_list」が提供されているとします。私たちに与えられた問題は、与えられた配列が2つの半分に分割できるかどうかを確認することです。ここで、2つの半分の合計の差は数値nに等しくなります。番号nは事前に提供されます。

したがって、入力がinput_list =[9,2,5,6]、n =0の場合、出力は「可能」になります。

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

  • list_total:=input_listの値の合計
  • if(list_total --n)mod 2が1と同じ場合、
    • 「不可能」を返す
  • val:=(list_total --n)/ 2
  • temp_sum:=0;
  • 0からinput_listのサイズまでの範囲のiについては、
    • temp_sum:=temp_sum + input_list [i]
    • temp_sumがvalと同じ場合、
      • 「可能」を返す
  • 「不可能」を返す

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

def solve(input_list,n):
   list_total = sum(input_list)
   if (list_total - n) % 2 == 1:
      return "Not Possible"
   val = (list_total - n) / 2
   temp_sum = 0;
   for i in range (0,len(input_list)):
      temp_sum += input_list[i]
      if (temp_sum == val):
         return "Possible"
   return "Not Possible"
input_list= [9,2,5,6]
n = 0
print(solve(input_list, n))

入力

[9,2,5,6], 0

出力

Possible

  1. Pythonで2つの部分に分割されないように、チェス盤で最小限のカットを行うことができます

    A x Bのチェス盤(マトリックス)が1つあるとすると、ボードが2つの部分に分割されないように、このボードで作成できるカットの最大数を計算する必要があります。 したがって、入力がA=2およびB=4のような場合、 その場合、出力は3になります。 これを解決するには、次の手順に従います- res:=0 res:=(M-1)*(N-1) return res 例 理解を深めるために、次の実装を見てみましょう- def max_cuts_count(M, N):    res = 0    res = (M - 1) * (N - 1

  2. 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 これを解決するには、次の手順に従います-