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