Pythonで指定されたサイズ、合計、要素の上限を使用して、個別の要素配列を作成します
1つのサイズ変数Nがあり、1つの変数SUMもあります。これは、配列で使用可能なすべての要素と、配列に要素がないような別の変数Kの合計です。 Kより大きい場合、配列内のすべての要素が異なる1つの直交配列を見つける必要があります。解決策がない場合は-1を返します。
したがって、入力がN =4、SUM =16 K =9の場合、出力は[1,2,4,9]
になります。これを解決するには、次の手順に従います-
-
minimum_sum:=(N *(N + 1))/ 2
-
maximum_sum:=(N * K)-(N *(N-1))/ 2
-
minimum_sum>SUMまたはmaximum_sum
-
-1を返す
-
-
res:=サイズN + 1の1つの配列で、0からNまで入力します
-
合計:=minimum_sum
-
i:=N
-
i> =1の場合、実行
-
x:=合計+(K-i)
-
x
-
合計:=合計+(K-i)
-
res [i]:=K
-
K:=K-1
-
-
それ以外の場合
-
res [i]:=res [i] +(SUM-合計)
-
合計:=SUM
-
ループから出てきます
-
-
i:=i-1
-
-
解像度を返す
例
理解を深めるために、次の実装を見てみましょう-
def get_arr(N, SUM, K): minimum_sum = (N * (N + 1)) / 2 maximum_sum = (N * K) - (N * (N - 1)) / 2 if (minimum_sum > SUM or maximum_sum < SUM): return -1 res = [i for i in range(N + 1)] sum = minimum_sum i = N while(i >= 1): x = sum + (K - i) if (x < SUM): sum = sum + (K - i) res[i] = K K -= 1 else: res[i] += (SUM - sum) sum = SUM break i -= 1 return res N = 4 SUM = 16 K = 9 print(get_arr(N, SUM, K))
入力
4, 16, 9
出力
[0, 1, 2, 4.0, 9]
-
ペア要素が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と
-
与えられたサイズのグループで配列を逆にするPythonプログラム?
=1の場合、配列内のすべての要素を逆にします。 アルゴリズム Revarray(A,n,p) /* A is an integer Array, n is the size of an array and every sub-array of size p starting from the beginning of the array and reverse it.*/ Step 1: i is the loop control variable which is initialized by 0. Step 2: using while loop check i is less than