Problem:
Implement a function nondecreasingSubsequences() that, given a sequence of numbers such as:
[3,6,61,6,7,9,1,7,7,2,7,7,2,388,3,72,7]
… will identify and return each contiguous sub-sequence of non-decreasing numbers. E.g. this example input should return this array-of-arrays.
[[3,6,61],[6,7,9],[1,7,7],[2,7,7],[2,388],[3,72],[7]]
Solution:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | function nondecreasing_subsequences(input) { var sequences = []; var tmp = []; var count = 0; for (var i = 0; i <= input.length; i++) { count++; if (input[i] < input[i - 1]) { sequences.push(tmp); tmp = []; } else if (count === input.length + 1) { sequences.push(tmp); console.log(sequences); return; } tmp.push(input[i]); } }; nondecreasing_subsequences(array); |