私はコーディングコンテストでこの質問に出くわしました-
正の整数の配列が与えられ、必要なときにいつでも任意の整数の符号を変更できます。この配列の最小合計を計算するプログラムを作成します。この合計は>=0である必要があります。例:Array = {1,2,4,5}次に、1と5の符号を変更するとsum = 0 {-1,2,4、-5}
この問題に対する私の解決策は、配列を並べ替えて、すべてのメンバーの合計を見つけることでした。次に、合計から2 *(並べ替えられた配列値)を繰り返し減らします。最大数から始めて、合計が0になるか、負になるまで続けます。
しかし、私の解決策は間違っています。12,13,14,15,16,50を取る。私のコードは50から-50に変更され、停止します(つまり、最小合計= 20)。しかし、答えは12、-13、-14、-15、-16,50(最小合計= 4)である必要があります