leetcode——115.不同的子序列

还好做出来了,就是慢了点。

public int numDistinct(String s, String t) {
        int m = s.length();
        int n = t.length();
        if(m<n){
            return 0;
        }else if(m ==n){
            if(s.equals(t)){
                return 1;
            }else{
                return 0;
            }
        }
        int[][] dp = new int[n+1][m+1];
        for(int i = 0;i<m;i++){
            if(s.charAt(i) == t.charAt(0)){
                dp[1][i+1] = dp[1][i] + 1;
            }else{
                dp[1][i+1] = dp[1][i];
            }
        }
        for(int j = 1;j<n;j++){
            for(int i = j;i<m;i++){
                if(s.charAt(i) == t.charAt(j)){
                    dp[j+1][i+1] = dp[j][i]+dp[j+1][i];
                }else{
                    dp[j+1][i+1] = dp[j+1][i];
                }
            }
        }
        return dp[n][m];
    }

没什么特别之处。

——2020.6.27

我的前方是万里征途,星辰大海!!
原文地址:https://www.cnblogs.com/taoyuxin/p/13199058.html