首页 > 其他分享 >day38

day38

时间:2024-10-13 11:47:06浏览次数:1  
标签:string day38 int word1 word2 dp size

不同的子序列
class Solution {
public:
int numDistinct(string s, string t) {
vector<vector<uint64_t>> dp(s.size()+1, vector<uint64_t>(t.size()+1, 0));
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()];
}
};

两个字符串的删除操作

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

编辑距离

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

标签:string,day38,int,word1,word2,dp,size
From: https://www.cnblogs.com/pwangikun/p/18462060

相关文章

  • 嵌入式day38
    内存泄漏:手动申请的空间没有及时释放,导致系统发生内存泄漏valgrind:在程序运行过程中,测试是否发生内存泄露快慢指针法:链表倒置:链表插入排序:双向链表:双向链表与单向链表的区别:单向链表(SinglyLinkedList)结构:单向链表的每个节点包含两部分信息:一部分是存储的数据(da......
  • Day38.join方法
    1.join方法_作用主进程等待子进程执行完后再执行2.join方法_操作系统是创建进程,但是不会按照顺序创建3.join方法_多进程代码运行,程序运行时间大概是运行时间最长的程序,方法一4.join方法_多进程代码运行,程序运行时间大概是运行时间最长的程序_方法二,使用for循环......
  • 代码随想录算法训练营第36期DAY38
    DAY38435无重叠区间昨晚很快就想出来了,今天相当于二刷。class Solution {public:    static bool mycmp(vector<int>&a,vector<int>&b){        return a[1]<b[1];    }    int eraseOverlapIntervals(vector<vector<int>>& intervals) {   ......
  • day38 动态规划part1 代码随想录算法训练营 746. 使用最小花费爬楼梯
    题目:746.使用最小花费爬楼梯我的感悟:哈哈,我居然自己独立写出来了,确实,只要定义定清楚了,哪怕定的含义只有自己能看懂,只要定义一致就可以求出解决来!!!我真是个大天才!!理解难点:听课笔记:代码示例:classSolution:defminCostClimbingStairs(self,cost:List[int])->int:......
  • day38 动态规划part1 代码随想录算法训练营 70. 爬楼梯
    题目:70.爬楼梯我的感悟:居然自己先写出来了!!继续努力!!理解难点:听课笔记:我的代码:classSolution:defclimbStairs(self,n:int)->int:ifn==1:return1dp=[0]*(n+1)dp[1]=1dp[2]=2foriinran......
  • 算法学习Day38斐波那契数、爬楼梯
    Day38斐波那契数、爬楼梯ByHQWQF2024/01/22笔记509.斐波那契数斐波那契数,通常用 F(n)表示,形成的序列称为斐波那契数列。该数列由 0和1开始,后面的每一项数字都是前面两项数字的和。也就是:F(0)=0,F(1) =1F(n)=F(n-1)+F(n-2),其中n>1给你n,请计算F(......
  • day38 K8S管理平台-Lens - K8S管理平台-Kuboard (11.1-11.2)
    11.1、K8S管理平台-Lens(两节)Lens简介lens是一款开源的KubenretesIDE,也可以作为桌面客户端,官方网站https://k8slens.dev,具有以下特性:完全开源,GitHub地址https://github.com/lensapp/lens实时展示集群状态内置Prometheus监控多集群,多个namespace管理原生K......
  • Day38 三种数组初始化及内存分析
    三种数组初始化及内存分析Java内存分析Java内存:1.堆存放new的对象和数组​可以被所有的线程共享,不会存放别的对象引用2.栈存放基本变量类型(会包含这个基本类型的具体数值)​引用对象的变量(会存放这个引用在堆里面的具体地址)3.方法区可以被......
  • 算法练习-day38
    动态规划121.买卖股票的最佳时机题意:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中......
  • 【安全学习之路】Day38
    ......