最长公共子序列

流过昼夜 提交于 2019-12-12 05:10:33

来源:牛客网 2016校招真题在线编程
知识点:动态规划


思路:《算法设计技巧与分析(沙特版)》动态规划

import java.util.*;

public class LCS {
    public int findLCS(String A, int n, String B, int m) {
        // write code here
        int[][] L = new int[n+1][m+1];
        for(int i=0;i<=n;i++){
            L[i][0]=0;
        }
        for(int i=0;i<=m;i++){
            L[0][i]=0;
        }
        
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                if(A.charAt(i-1)==B.charAt(j-1)){
                    L[i][j] = L[i-1][j-1]+1;
                }else{
                    L[i][j] = Math.max(L[i-1][j],L[i][j-1]);
                }
            }
        }
        
        return L[n][m];
    }
}

结果:通过,运行时间:90ms,占用内存:12280k

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!