๐ŸŒ— 115. ไธๅŒ็š„ๅญๅบๅˆ—

ๅžไฝ›็ซฅๅญ2022ๅนด6ๆœˆ9ๆ—ฅๅฐไบŽ 1 ๅˆ†้’Ÿ

๐ŸŒ— 115. ไธๅŒ็š„ๅญๅบๅˆ—

้šพๅบฆ: ๐ŸŒ—

้—ฎ้ข˜ๆ่ฟฐ

img_23.png


่งฃๆณ•

class Solution {
    public int numDistinct(String s, String t) {
        // ๆ€่ทฏ๏ผš
        // dp[i][j] = dp[i - 1][j] -- ๅฝ“ๅ‰ s ไธญ็š„ๅญ—็ฌฆไธ็ฎ—
        // dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1]
        int rows = s.length();
        int cols = t.length();
        // ็‰นๆฎŠๆƒ…ๅ†ต็‰นๅˆค
        if(rows < cols || rows == 0 || cols == 0) {
            return 0;
        }
        int[][] dp = new int[rows + 1][cols + 1];
        // ๅˆๅง‹ๅŒ–
        for(int i = 0; i <= rows; i ++) {
            dp[i][0] = 1;
        }
        for(int i = 1; i <= rows; i ++) {
            for(int j = 1; j <= cols; j ++) {
                int m = i - 1;
                int n = j - 1;
                if(s.charAt(m) == t.charAt(n)) {
                    dp[i][j] += dp[i - 1][j - 1];
                }
                dp[i][j] += dp[i - 1][j];
            }
        }
        return dp[rows][cols];
    }
}

่พ“ๅ‡บ

img_22.png

ไธŠๆฌก็ผ–่พ‘ไบŽ: 2022/6/20 ไธ‹ๅˆ8:24:47
่ดก็Œฎ่€…: liuxianzhishou