iT邦幫忙

2025 iThome 鐵人賽

DAY 0
0
自我挑戰組

Leetcode30天挑戰系列 第 16

Day16-Distinct Subsequences

  • 分享至 

  • xImage
  •  

今天的題目為115.Distinct Subsequences,今天的題目在要求計算出字串s中有多少個 不同的子序列等於字串t,而這裡的「子序列」是指可以從s中刪除一些字元而不改變剩下字元的順序所得到的字串。

以下是程式碼:

class Solution {
    public int numDistinct(String s, String t) {
        int m = s.length();
        int n = t.length();

        int[][] dp = new int[m + 1][n + 1];
        
        for (int i = 0; i <= m; i++) {
            dp[i][0] = 1;
        }

        for (int i = 1; i <= m; i++) {
            for (int j = 1; j <= n; j++) {
                if (s.charAt(i - 1) == t.charAt(j - 1)) {
                    dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
                } else {
                    dp[i][j] = dp[i - 1][j];
                }
            }
        }

        return dp[m][n];
    }
}

今天的題目是我覺得這幾天來最難的,今天的讓我有一點混亂,也多次詢問AI之後才找到正確的答案。


上一篇
Day15-Flatten Binary Tree to Linked List
下一篇
Day17-Populating Next Right Pointers in Each Node
系列文
Leetcode30天挑戰30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言