絶対値の範囲が 1 から 10 までの 10 個の数値の配列があるとします。値は繰り返すことができます。これの例は次のとおりです。
{2, 4, 2, 6, 9, 10, 1, 7, 6, 3}.
これらの数字のそれぞれに正または負の符号を割り当てることができますが、各組み合わせには常に 5 つの負の数字と 5 つの正の数字が必要です。たとえば、
{-2, -4, 2, -6, 9, 10, 1, 7, -6, -3}
{2, -4, -2, 6, -9, 10, -1, 7, -6, 3}
この規則に従う可能な順列です。
指定されたセットの半分の正と半分の負の値のすべての可能な順列で、値が 0 に最も近い最小の正または負の合計を見つけたいと思います。
助言がありますか?この問題は非常に計算量が多いと感じており、力ずくではない解決策があるかどうかはわかりません (たとえば、すべての順列を列挙してから、最も近い 3Sum のバリエーションを適用するなど)。