算法训练营day59

题目1:115. 不同的子序列 - 力扣(LeetCode)

这里的初始化第一列为1,表示t是空字符串 在s的子序列中有1种情况

递推公式也不同

class Solution {
public:
    int numDistinct(string s, string t) {
        vector<vector<int>> dp(s.size() + 1, vector<int>(t.size() + 1));
        for(int i = 0;i <= s.size();i++) {
            dp[i][0] = 1;
        }
        for(int i = 1;i <= s.size();i++) {
            for(int j = 1;j <= t.size();j++) {
                if(s[i - 1] == t[j - 1]) {
                    dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
                }else
                    dp[i][j] = dp[i - 1][j];
            }
        }
        return dp[s.size()][t.size()];
    }
};

题目2:583. 两个字符串的删除操作 - 力扣(LeetCode)

class Solution {
public:
    int minDistance(string word1, string word2) {
        vector<vector<int>> dp(word1.size() + 1, vector<int>(word2.size() + 1));
        for(int i = 1;i <= word1.size();i++) {
            dp[i][0] = i;
        }
        for(int j = 1;j <= word2.size();j++) {
            dp[0][j] = j;
        }
        for(int i = 1;i <= word1.size();i++) {
            for(int j = 1;j <= word2.size();j++) {
                if(word1[i - 1] == word2[j - 1]) {
                    dp[i][j] = dp[i - 1][j -1];
                }else {
                    dp[i][j] = min(dp[i - 1][j] + 1, dp[i][j - 1] + 1);
                }
            }
        }
        return dp[word1.size()][word2.size()];
    }
};

题目3:72. 编辑距离 - 力扣(LeetCode)

class Solution {
public:
    int minDistance(string word1, string word2) {
        vector<vector<int>> dp(word1.size() + 1, vector<int>(word2.size() + 1));
        for(int i = 1;i <= word1.size();i++) dp[i][0] = i;
        for(int j = 1;j <= word2.size();j++) dp[0][j] = j;
        for(int i = 1;i <= word1.size();i++) {
            for(int j = 1;j <= word2.size();j++) {
                if(word1[i - 1] == word2[j - 1]) {
                    dp[i][j] = dp[i - 1][j - 1];
                }else {
                    dp[i][j] = min(dp[i - 1][j] + 1, min(dp[i][j - 1] + 1, dp[i - 1][j - 1] + 1));
                }
            }
        }
        return  dp[word1.size()][word2.size()];
    }
};

相关推荐

  1. 算法训练day59

    2024-06-15 12:30:02       32 阅读
  2. 算法训练day52

    2024-06-15 12:30:02       29 阅读
  3. 算法训练day56

    2024-06-15 12:30:02       27 阅读
  4. 算法训练day53

    2024-06-15 12:30:02       34 阅读
  5. 算法训练day58

    2024-06-15 12:30:02       35 阅读
  6. 算法训练day51

    2024-06-15 12:30:02       30 阅读
  7. 算法训练Day59(单调栈)

    2024-06-15 12:30:02       63 阅读
  8. 算法训练Day59(单调栈2)

    2024-06-15 12:30:02       55 阅读
  9. 算法训练Day50(动态规划11)

    2024-06-15 12:30:02       60 阅读
  10. 算法训练Day53(动态规划14)

    2024-06-15 12:30:02       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-15 12:30:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-15 12:30:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-15 12:30:02       82 阅读
  4. Python语言-面向对象

    2024-06-15 12:30:02       91 阅读

热门阅读

  1. SpringBoot集成Elasticsearch实例

    2024-06-15 12:30:02       23 阅读
  2. 什么是JWT?为什么用JWT?JWT的实战案例

    2024-06-15 12:30:02       32 阅读
  3. Android EventLog简介

    2024-06-15 12:30:02       28 阅读
  4. 设置服务器禁止和ip通信

    2024-06-15 12:30:02       28 阅读
  5. 网络安全(补充)

    2024-06-15 12:30:02       31 阅读
  6. Web前端进国企:挑战与机遇并存

    2024-06-15 12:30:02       16 阅读
  7. 标题:探索开源世界:2024年热门开源项目推荐

    2024-06-15 12:30:02       33 阅读