This commit is contained in:
Ilya Kantor 2014-11-16 01:40:20 +03:00
parent 962caebbb7
commit 87bf53d076
1825 changed files with 94929 additions and 0 deletions

View file

@ -0,0 +1,10 @@
function getMaxSubSum(arr) {
var maxSum = 0, partialSum = 0;
for (var i=0; i<arr.length; i++) {
partialSum += arr[i];
maxSum = Math.max(maxSum, partialSum);
if (partialSum < 0) partialSum = 0;
}
return maxSum;
}

View file

@ -0,0 +1,33 @@
describe("getMaxSubSum", function() {
it("максимальная подсумма [1, 2, 3] равна 6", function() {
assert.equal( getMaxSubSum([1, 2, 3]), 6);
});
it("максимальная подсумма [-1, 2, 3, -9] равна 5", function() {
assert.equal( getMaxSubSum([-1, 2, 3, -9]), 5);
});
it("максимальная подсумма [-1, 2, 3, -9, 11] равна 11", function() {
assert.equal( getMaxSubSum([-1, 2, 3, -9, 11]), 11);
});
it("максимальная подсумма [-2, -1, 1, 2] равна 3", function() {
assert.equal( getMaxSubSum([-2, -1, 1, 2]), 3);
});
it("максимальная подсумма [100, -9, 2, -3, 5] равна 100", function() {
assert.equal( getMaxSubSum([100, -9, 2, -3, 5]), 100);
});
it("максимальная подсумма [] равна 0", function() {
assert.equal( getMaxSubSum([]), 0);
});
it("максимальная подсумма [-1] равна 0", function() {
assert.equal( getMaxSubSum([-1]), 0);
});
it("максимальная подсумма [-1, -2] равна 0", function() {
assert.equal( getMaxSubSum([-1, -2]), 0);
});
});