Pythonで1と2の配列を合計が等しい2つの部分に分割できるかどうかを確認します
1と2のみを格納する配列numsがあるとします。各部分の要素の合計が同じになるように、配列を2つの異なる部分に分割できるかどうかを確認する必要があります。
したがって、入力がnums =[1、1、2、2、2]のようである場合、この配列を[1、1、2]と[2、2]の合計のように分割できるため、出力はTrueになります。各部分は4です。
これを解決するには、次の手順に従います-
- 合計:=0、one_count:=0
- total:=numsのすべての要素の合計
- one_count:=numsの1の数
- 合計が偶数の場合、
- Falseを返す
- (合計/ 2)の整数部分が偶数の場合、
- Trueを返す
- one_count> 0の場合、
- Trueを返す
- それ以外の場合、
- Falseを返す
理解を深めるために、次の実装を見てみましょう-
例
def solve(nums): total = 0 one_count = 0 total = sum(nums) one_count = nums.count(1) if total % 2: return False if (total // 2) % 2 == 0: return True if one_count > 0: return True else: return False nums = [1, 1, 2, 2, 2] print(solve(nums))を返す
入力
[1, 1, 2, 2, 2]
出力
True
-
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 これを解決するには、次の手順に従います-
-
Pythonで合計が等しい3つの部分に配列を分割する
整数の配列Aがあるとすると、合計が等しい3つの空でない部分に配列を分割できる場合にのみ、出力はtrueになります。 正式には、(A [0] + A [1] + ... +A[i]がA[i+ 1] + A[と同じであるインデックスi+1