Advertisement
Venciity

[ExamPreparation] MaxSum

Jul 22nd, 2014
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function Solve(params) {
  2.     var n = parseInt(params[0]);
  3.     var numbers = [];
  4.     for (var i = 1; i <= n; i++) {
  5.         numbers[i] = parseInt(params[i]);
  6.     }
  7.  
  8.     var maxSum = -2000000000;
  9.  
  10.     for (var i = 1; i <= n; i++) {
  11.         for (var j = i; j <= n; j++) {
  12.             var localSum = 0;
  13.             for (var k = i; k <= j; k++) {
  14.                 localSum += numbers[k];
  15.             }
  16.             if (localSum > maxSum) {
  17.                 maxSum = localSum;
  18.             }
  19.         }
  20.     }
  21.  
  22.     // There is a smarter solution using prefix sums
  23.     // Prefix sums will remove the need of the most inner loop
  24.     // More information on prefix sums: http://en.wikipedia.org/wiki/Prefix_sum
  25.  
  26.     return maxSum;
  27. }
  28.  
  29. console.log(Solve([8, 1, 6, -9, 4, 4, -2, 10, -1]));
  30. console.log(Solve([6, 1, 3, -5, 8, 7, -6]));
  31. console.log(Solve([9, -9, -8, -8, -7, -6, -5, -1, -7, -6]));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement