583. 两个字符串的删除操作

图片说明

  • 对角线上的点都是对应前n个序列的最优解

    class Solution {
      public int minDistance(String word1, String word2) {
          char w1[] = word1.toCharArray();
          char w2[] = word2.toCharArray();
          int n = w1.length;
          int m = w2.length;
          int f[][] = new int [n+1][m+1];
          for(int i = 0 ; i < n ; i++) {
              for(int j = 0 ; j < m ; j++) {
                  if(w1[i]==w2[j])
                      f[i+1][j+1] = f[i][j]+1;//Math.max(f[i+1][j+1-1], f[i+1-1][j+1-1])+1;//只能是斜上角 用相邻的话自己的位置算了两次
                  else
                      f[i+1][j+1] = Math.max(f[i+1][j+1-1],f[i+1-1][j+1]);
    
              }
          }
           // for(int i = 0 ; i<=n;i++){
           // for(int j = 0 ; j <= m ;j++){
           //     System.out.print(f[i][j]+" ");
           //    }System.out.println();
           // }
          return (m+n)-2*f[n][m];
      }
    }
全部评论

相关推荐

AC鸽想进大厂:你是我见过最美的牛客女孩
点赞 评论 收藏
分享
牛客37185681...:马德,我感觉这是我面过最恶心的公司,一面是两个女hr,说什么实习前几个月属于试用期,试用期过了才能转成正式实习生,我***笑了,问待遇就是不说,问能不能接受全栈,沙币公司
如果可以选,你最想去哪家...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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