8-2 동적 계획

1, 최대 공통 하위 시퀀스(LCS)
class Solution {
    public int lcs(String A, String B) {
        if(A==null || B==null || A.length()==0 || B.length()==0){
            return 0;
        }
        int m=A.length(),n=B.length();
        int[][] f = new int[m+1][n+1];
        for(int i=1;i<=m;i++){
            for(int j=1;j<=n;j++){
                f[i][j]= Math.max(f[i-1][j],f[i][j-1]);
                if(A.charAt(i-1)==B.charAt(j-1)){
                    f[i][j]=f[i-1][j-1]+1;
                }
            }
        }
        return f[m][n];
        
    }
}

2, LIS(Lew Upgrade Surface)
class Solution {

    public int lis(int[] arr) {
        if(arr==null || arr.length==0){
            return 0;
        }
        
        int[] f= new int[arr.length];
        int max=1;
        for(int i=0;if[i]?f[j]+1:f[i];
                }
            }
            
            if(f[i]>max){
                max=f[i];
            }
        }
        
        return max;
    }
}

좋은 웹페이지 즐겨찾기