Блог пользователя Fetus86_and_Luki49

Автор Fetus86_and_Luki49, история, 4 года назад, По-английски

How to implement Longest non-decreasing subsequence using recursion+memoization method efficiently? Will be grateful if anyone can help. Thank You.

  • Проголосовать: нравится
  • +2
  • Проголосовать: не нравится

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Here is a better approach Link

»
4 года назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Define function F(id) — "longest non-decreasing subsequence that ends at position id".

Recurrence formula : $$$ F(id) = max(F(id) , F(k) + 1) , 0 <= k < id,value[id] >= value[k]$$$

$$$Answer = max(F(i)), 0 <= i < n$$$ — where n is the number of elements.

IDEA: Find the longest non-decreasing subsequence ending at each position. Now the longest subsequence ends at some position i, so all we need is to find the position such that length of non-decreasing subsequence ending at that position is maximum.

CODE