PythonでK否定後の配列の合計を最大化する
整数の配列Aがあるとすると、次の方法で配列を変更する必要があります-
iを選択してA[i]を-A[i]に置き換えることができ、このプロセスをK回繰り返します。このように変更した後、配列の可能な最大の合計を返す必要があります。
したがって、配列A =[4,2,3]、K =1の場合、出力は5になります。したがって、インデックス1を選択すると、配列は[4、-2,3]
になります。これを解決するには、次の手順に従います-
-
配列Aを並べ替える
-
0からA–1の長さの範囲のiの場合
-
A [i] <0の場合、A [i]:=--A [i]であり、kを1減らします
-
k =0の場合、ループから抜けます
-
-
kが偶数の場合、
-
sp:=A [0]
-
for i:=1からAの長さ– 1
-
A [i]> 0の場合、sp:=spとA[i]
の最小値
-
-
Aの要素の合計を返す–(2 * sp)
-
-
それ以外の場合は、A
の要素の合計を返します
例(Python)
理解を深めるために、次の実装を見てみましょう-
class Solution(object): def largestSumAfterKNegations(self, A, K): A.sort() for i in range(len(A)): if A[i] <0: A[i] = -A[i] K-=1 if K==0: break if K%2: smallest_positive = A[0] for i in range(1,len(A)): if A[i]>=0: smallest_positive = min(smallest_positive,A[i]) return sum(A) - (2*smallest_positive) else: return sum(A) ob1 = Solution() print(ob1.largestSumAfterKNegations([3,-1,0,2],3))
入力
[3,-1,0,2] 3
出力
6
-
Pythonプログラムで配列の合計を見つける
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列の合計を計算するために必要な配列が与えられます。 合計を取得するために各インデックスで配列と要素全体をトラバースするブルートフォースアプローチについては、以下で説明します。合計を取得するための各インデックスについては、以下で説明します。 例 # sum function def sum_(arr,n): # using built-in function return(sum(arr)) # main arr = [11,22,33,44,55,66
-
配列の合計を見つけるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '