LCS與LIS

LCS

@求解兩字串最長公共子串問題
@brief LCS PROBLEM  n^2 solved
@string a ' size is m, str b's size is n
 
for i -> 1 to m
    for j -> 1 to n
            if a[i] == b[i]
                    dp[i][j] = dp[i-1][j-1] + 1
            else
                    dp[i][j] = max(dp[i-1][j], dp[i][j-1])

LIS

@求解字串中的最長上升或不降子序列
@brief LIS PROBLEM n^2 solved
@string a' size is n, 

for i-> 1 to n
    for j -> 1 to i - 1
        if a[i] > a[j]
            dp[i] = max(dp[i], dp[j] + 1);
相關文章
相關標籤/搜索