algorithm - Number of increasing subsequences in sequence of [0-9] elements -


in case sequence of unknown range value elements, question number of increasing subsequences in given sequence give solution in o(n^2).

i've heard of solution in o(9*n) in case of sequence composed of elements in interval [0,9] only. if know algorithm please let me know that.

here algorithm:

1)let's call dp[i] = number of increasing subsequences have last element i(0 <= <= 9). filled zeros.

2)now can iterate on sequence , compute dp in following way:
let's assume current element d(0 <= d <= 9). dp can updated this:

for prev = 0...d - 1     dp[d] += dp[prev] //continue 1 of previous sequences. dp[d] += 1 //start new sequence consists of 1 element. 

3)after iterating on elements of sequence,
answer sum of dp[i] 0 <= <= 9.

note algorithm has desired complexity under assumption arithmetic operations have o(1) time complexity(that might not case because number of increasing subsequences can large).


Comments

Popular posts from this blog

Linux vanilla kernel on QEMU and networking with eth0 -

rdbms - what exactly the undo information lives in oracle? -

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -