--- 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; } ```