--- title: Greatest subsequential sum id: 5a23c84252665b21eecc7e84 challengeType: 5 --- ## Description
Given a sequence of integers, find a continuous subsequence which maximizes the sum of its elements, that is, the elements of no other single subsequence add up to a value larger than this one. An empty subsequence is considered to have the sum of \( 0 \); thus if all elements are negative, the result must be the empty sequence.
## Instructions
## Tests
```yml tests: - text: maximumSubsequence should be a function. testString: 'assert(typeof maximumSubsequence=="function","maximumSubsequence should be a function.");' - text: maximumSubsequence("+JSON.stringify(tests[0])+") should return an array. testString: 'assert(Array.isArray(maximumSubsequence(tests[0])),"maximumSubsequence("+JSON.stringify(tests[0])+") should return an array.");' - text: maximumSubsequence("+JSON.stringify(tests[0])+") should return "+JSON.stringify(results[0])+". testString: 'assert.deepEqual(maximumSubsequence(tests[0]),results[0],"maximumSubsequence("+JSON.stringify(tests[0])+") should return "+JSON.stringify(results[0])+".");' - text: maximumSubsequence("+JSON.stringify(tests[1])+") should return "+JSON.stringify(results[1])+". testString: 'assert.deepEqual(maximumSubsequence(tests[1]),results[1],"maximumSubsequence("+JSON.stringify(tests[1])+") should return "+JSON.stringify(results[1])+".");' - text: maximumSubsequence("+JSON.stringify(tests[2])+") should return "+JSON.stringify(results[2])+". testString: 'assert.deepEqual(maximumSubsequence(tests[2]),results[2],"maximumSubsequence("+JSON.stringify(tests[2])+") should return "+JSON.stringify(results[2])+".");' - text: maximumSubsequence("+JSON.stringify(tests[3])+") should return "+JSON.stringify(results[3])+". testString: 'assert.deepEqual(maximumSubsequence(tests[3]),results[3],"maximumSubsequence("+JSON.stringify(tests[3])+") should return "+JSON.stringify(results[3])+".");' - text: maximumSubsequence("+JSON.stringify(tests[4])+") should return "+JSON.stringify(results[4])+". testString: 'assert.deepEqual(maximumSubsequence(tests[4]),results[4],"maximumSubsequence("+JSON.stringify(tests[4])+") should return "+JSON.stringify(results[4])+".");' - text: maximumSubsequence("+JSON.stringify(tests[5])+") should return "+JSON.stringify(results[5])+". testString: 'assert.deepEqual(maximumSubsequence(tests[5]),results[5],"maximumSubsequence("+JSON.stringify(tests[5])+") should return "+JSON.stringify(results[5])+".");' ```
## Challenge Seed
```js function maximumSubsequence (population) { // Good luck! } ```
### After Test
```js console.info('after the test'); ```
## Solution
```js function maximumSubsequence(population) { function sumValues(arr) { var result = 0; for (var i = 0, len = arr.length; i < len; i++) { result += arr[i]; } return result; } var greatest; var maxValue = 0; var subsequence = []; for (var i = 0, len = population.length; i < len; i++) { for (var j = i; j <= len; j++) { var subsequence = population.slice(i, j); var value = sumValues(subsequence); if (value > maxValue) { maxValue = value; greatest = subsequence; }; } } return greatest; } ```