Write a function named longestSortedSubsequence
that accepts a reference to a vector
of integers and returns the length of the longest non-decreasing subsequence of values in the vector using dynamic programming.
A subsequence contains values in the same order they occurred in the original vector, though not necessarily consecutively.
For example, if the vector stores {10, 22, 9, 33, 21, 50, 41, 60, 80}
, the longest sorted subsequence is {10, 22, 33, 50, 60, 80}
, so the value returned should be its length, which is 6
.
The key constraint of this problem is that you must solve it using a bottom-up dynamic programming approach.
Do not use recursion. Your solution must use dynamic programming instead.
You are allowed to construct any data structures (array, vector, set, map, etc.) necessary to store the data for your dynamic programming algorithm.