首页 > 代码库 > LCS与LIS

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);


LCS与LIS