Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>If you want to find the best possible solution, you can simply use brute force ie. try all posible combinations of fiwe numbers.</p> <p>Something like this very quick and dirty algorithm:</p> <pre><code>public List&lt;Integer&gt; findLeastPositivSum(List&lt;Integer&gt; numbers) { List&lt;Integer&gt; result; Integer resultSum; List&lt;Integer&gt; subresult, subresult2, subresult3, subresult4, subresult5; for (int i = 0; i &lt; numbers.size() - 4; i++) { subresult = new ArrayList&lt;Integer&gt;(); subresult.add(numbers.get(i)); for (int j = i + 1; j &lt; numbers.size() - 3; j++) { subresult2 = new ArrayList&lt;Integer&gt;(subresult); subresult2.add(j); for (int k = j + 1; k &lt; numbers.size() - 2; k++) { subresult3 = new ArrayList&lt;Integer&gt;(subresult2); subresult3.add(k); for (int l = k + 1; l &lt; numbers.size() - 1; l++) { subresult4 = new ArrayList&lt;Integer&gt;(subresult3); subresult4.add(k); for (int m = l + 1; m &lt; numbers.size(); m++) { subresult5 = new ArrayList&lt;Integer&gt;(subresult4); subresult5.add(k); Integer subresultSum = sum(subresult5); if (subresultSum &gt; 0) { if (result == null || resultSum &gt; subresultSum) { result = subresult; } } } } } } } return result; } public Integer sum(List&lt;Integer&gt; list) { Integer result = 0; for (Integer integer : list) { result += integer; } return result; } </code></pre> <p>This is really quick and dirty algorithm, it can be done more elegantly. I can provide cleaner algorithm e.g. using recursion.</p> <p>It can be also further optimized. E.g. you can remove similar numbers from input list as first step.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload