题解 | #最长公共子序列(一)#

最长公共子序列(一)

https://www.nowcoder.com/practice/8cb175b803374e348a614e34b80ae191?tpId=196&tqId=39284&rp=1&ru=/exam/oj&qru=/exam/oj&sourceUrl=%2Fexam%2Foj%3Ftab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D196%26page%3D1%26search%3Dnc165&difficulty=undefined&judgeStatus=undefined&tags=&title=nc165

题意:
        求两个字符串最长公共子序列的长度。


方法一:
动态规划

思路:
        dp[ i ][ j ]表示字符串s1的前 i 个字符与字符串s2的前 j 个字符的最长公共子序列的长度。
        状态转移方程如下:
                

class Solution {
public:
    int dp[1005][1005];//dp[i][j]表示字符串s1的前i个字符与字符串s2的前j个字符的最长公共子序列的长度
    int LCS(string s1, string s2) {
        int len1=s1.size(),len2=s2.size();
        
        for(int i=1;i<=len1;i++){//二重循环
            for(int j=1;j<=len2;j++){
                if(s1[i-1]==s2[j-1]){//状态转移方程
                    dp[i][j]=dp[i-1][j-1]+1;
                }else{
                    dp[i][j]=max(dp[i][j-1],dp[i-1][j]);
                }
            }
        }
        return dp[len1][len2];
    }
};


时间复杂度:
空间复杂度:

方法二:
java

思路:
        dp[ i ][ j ]表示字符串s1的前 i 个字符与字符串s2的前 j 个字符的最长公共子序列的长度。
        状态转移方程如下:
                


import java.util.*;


public class Solution {
    
    public int LCS (String s1, String s2) {
        int len1=s1.length(),len2=s2.length();
        //dp[i][j]表示字符串s1的前i个字符与字符串s2的前j个字符的最长公共子序列的长度
        int[][] dp=new int[len1+1][len2+1];
        for(int i=1;i<=len1;i++){//二重循环
            for(int j=1;j<=len2;j++){
                if(s1.charAt(i-1)==s2.charAt(j-1)){//状态转移方程
                    dp[i][j]=dp[i-1][j-1]+1;
                }else{
                    dp[i][j]=Math.max(dp[i][j-1],dp[i-1][j]);
                }
            }
        }
        return dp[len1][len2];
    }
}

时间复杂度:
空间复杂度:












全部评论

相关推荐

牛客38347925...:9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
07-09 15:14
南京大学 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务