zoukankan      html  css  js  c++  java
  • 最长公共字串

    最长公共字串

    解释:

    当A[i]==B[j]的情况下,我不能像相等情况下把他们都去掉然后加0来得到子问题,因为这样会造成缺失,因为A[i]可能会和B[j-1]或前面的相等

    A串:ABCBDAB

    B串:BDCABA

    最长公共字串的长度就是:4 BCBA

    dp[i][j]表示:A串的前i个字符和B串中的前j个字符所能组成的最长公共字串的长度

    dp[][]+1

    AB  B   1

    A   #    0

    相等:

    dp[i][j]=dp[i-1][j-1]+1

    a[i]!=b[j]不相同的情况

    AB  BD

    dp[2][2]> dp[2][1]

    AB  B   1 dp[i][j-1]  dp[2][1]

    A  BD   0 dp[i-1][j]  dp[1][2]

    A  B    0 dp[i-1][j-1] dp[1][1]

    说一下动态规划

    dp[i][j]=dp[i-1][j-1]+1

    A串: ADB

    B串: CB

    为啥:

    当A[3]==B[2]

    dp[3][2]=dp[2][1]+1

    动态规划:把大问题划分成结构相同的子问题

    当A[3]==B[2]

    A串: AD

    B串: C

    从后往前比的话:

    A串: DA

    B串: C

    已知的相同是一个B

    A串: ADB

    B串: CBD

    大问题划分成子问题

    解释:

    当A[i]==B[j]的情况下,我不能像相等情况下把他们都去掉然后加0,因为这样会造成缺失,因为A[i]可能会和B[j-1]或前面的相等

  • 相关阅读:
    修改NavigationBarItem的字体大小和颜色的使用方法
    iOS 大文件断点下载
    iOS 文件下载
    UITableView优化
    iOS 应用的生命周期
    iOS RunLoop简介
    iOS 线程间的通信 (GCD)
    iOS 多线程GCD的基本使用
    iOS 多线程GCD简介
    CSS--复习之旅(一)
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/8098047.html
Copyright © 2011-2022 走看看