fork download
  1. // your code goes here
  2. function test() {
  3.  
  4. var pairs = [[0.08, -0.12], [0.07, -0.13], [0.03, -0.7], [0.14, -0.2], [0.06, -0.09]];
  5. var sum = 0, sum0, sum1, newSum;
  6. var selected = [];
  7.  
  8. $.each(pairs, function(k, v) {
  9. sum0 = sum + v[0];
  10. sum1 = sum + v[1];
  11.  
  12. var i = Math.abs(sum1) > Math.abs(sum0) ? 0 : 1;
  13.  
  14. selected.push(i);
  15. sum += v[i];
  16. });
  17.  
  18. var checkAgain = false;
  19. do {
  20. $.each(pairs, function(k, v) {
  21. var selectedKey = selected[k];
  22. var nonSelectedKey = selected[k] === 1 ? 0 : 1;
  23. newSum = sum - v[selectedKey] + v[nonSelectedKey];
  24.  
  25. if (newSum > 0 && newSum < sum) {
  26. sum = newSum;
  27. selected[k] = nonSelectedKey;
  28. checkAgain = true;
  29. console.log(sum, selected);
  30. return false;
  31. }
  32. });
  33. } while (checkAgain)
  34.  
  35. console.log(sum, selected);
  36. }
Success #stdin #stdout 0s 172608KB
stdin
Standard input is empty
stdout
Standard output is empty