zoukankan      html  css  js  c++  java
  • Dynamic Programming

    实现如下:

    public static void main(String[] args) {
            
            String squence1 = "ABCBDAB";
            String squence2 = "BDCABC";
            
            int len1 = squence1.length(), len2 = squence2.length();
            if (len1 <= 0 || len2 <= 0) {
                System.out.println("empty squence!");    
                return;
            }
            int[][] allCommonSubLen = new int[len1+1][len2+1];
            //print all sub-squences
            String subSquence = "";
            //初始化i=0, j=0
            for (int i = 0; i < len1; i++) {
                allCommonSubLen[i][0] = 0;
            }
            for (int j = 0; j < len2; j++) {
                allCommonSubLen[0][j] = 0;
            }
            //迭代关系
            for (int i = 1; i <= len1; i++) {
                for (int j = 1; j <= len2; j++) {
                    char c1 = squence1.charAt(i-1);
                    char c2 = squence2.charAt(j-1);
                    if (c1 == c2) {
                        //subSquence += c1;
                        allCommonSubLen[i][j] = allCommonSubLen[i-1][j-1] + 1;
                        //System.out.println("i="+i+" ; j="+j+" ; subSquence="+subSquence);
                    } else {
                        allCommonSubLen[i][j] = Math.max(allCommonSubLen[i-1][j], allCommonSubLen[i][j-1]);
                        if (allCommonSubLen[i][j] == allCommonSubLen[i-1][j]) {
                            //subSquence += c2;
                            //System.out.println("i="+i+" ; j="+j+" ; subSquence="+subSquence);
                        } else {
                            //subSquence += c1;
                            //System.out.println("i="+i+" ; j="+j+" ; subSquence="+subSquence);
                        }
                    }                
                }
            }
            //System.out.println(allCommonSubLen[len1][len2]);
        }
    清醒时做事,糊涂时读书,大怒时睡觉,独处时思考; 做一个幸福的人,读书,旅行,努力工作,关心身体和心情,成为最好的自己 -- 共勉
  • 相关阅读:
    leetcode312 戳气球
    leetcode1283 使结果不超过阈值的最小除数
    软件管理相关命令
    win10+Tensorflow2.1+anaconda python3.7安装
    ResNet残差网络(可以解决梯度消失)
    梯度消失&梯度爆炸(Vanishing/exploding gradients)
    高方差和高偏差
    tf.nn.conv1d
    tensorboard
    卷积
  • 原文地址:https://www.cnblogs.com/hello-yz/p/4666203.html
Copyright © 2011-2022 走看看