W我有一个数组0..N-1
我需要将它们分成两组:说K和N-K元素。
但条件是:sum(N-K)-sum(K)应该是最大值。
我该如何处理?
我试过这样做:对数组进行排序 - std::sort(W,W+N),然后:
for(int i=0; i<K; ++i) less+=W[i];
for(int i=K; i<N; ++i) more+=W[i];
进而more-less
但我认为这不是最佳方式,或者在某些情况下甚至可能是错误的。
谢谢。
更新:
我们必须从中选择K元素,W使得sum(k elements)  和之间的差异sum(remaining elements)最大。