首页 > 其他分享 >[刷题笔记55 动态规划15]

[刷题笔记55 动态规划15]

时间:2023-05-29 22:23:27浏览次数:57  
标签:15 string 392 55 115 int 序列 size 刷题

@

目录

动态规划

● 392.判断子序列
● 115.不同的子序列

392.判断子序列

392.判断子序列

法1:动态规划

    bool isSubsequence(string s, string t) {
        //动态规划
        vector<vector<int>>dp(s.size() + 1,vector<int>(t.size() + 1, 0));
        for (int i = 1; i <= s.length(); ++i) {
            for (int j = 1; j <= t.length(); ++j) {
                if (s[i - 1] == t[j - 1])
                    dp[i][j] = dp[i - 1][j - 1] + 1;
                 else dp[i][j] = dp[i][j - 1];
            }
        }
        if (dp[s.size()][t.size()] == s.length())return true;
        else return false;
    }

//法2:双指针

    bool isSubsequence(string s, string t) {
        //双指针
        int m =s.length(); int n =t.length();
        int l = 0,r = 0;
        while (l < m && r < n){
            if (s[l] == t[r]){
                l++;
            }
            r++;
        }
        return (l == m);
}

115.不同的子序列

115.不同的子序列
法1:动态规划

    int numDistinct(string s, string t) {
        vector<vector<unsigned int>>dp(s.size() + 1,vector<unsigned int>(t.size() + 1, 0));
        for (int i = 0; i <= s.size(); ++i) {
            dp[i][0] = 1;
        }
        for (int j = 1; j <= t.size(); ++j) {
            dp[0][j] = 0;
        }

        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.length()][t.length()];
    }

标签:15,string,392,55,115,int,序列,size,刷题
From: https://www.cnblogs.com/asupersource-tech/p/17441846.html

相关文章

  • CF1585F. Non-equal Neighbours
    三倍经验:CF1591F.Non-equalNeighbours,ARC115E-LEQandNEQ。提供一种力大砖飞的数据结构\(O(n\logn)\)做法,非常好写/好调,去掉数据结构部分只有1k。定义\(f_{i,j}\)表示前\(i\)个数,最后一个为\(j\)的方案数。显然第1维可以压掉,写成\(f_j\)的形式。然后这个东......
  • hdu 1593(数学)
    往相反的方面跑,但是,最理想的初始位置并不是圆点和圆上的某一点,应该还有更理想的初始逃跑状态.这里有一点需要注意,就是逃跑者极力想达到理想逃跑初态,而追赶者极力阻止逃跑者达到这一状态,所以,理想初态应该是无论追赶者如何阻止,逃跑者仍然可以达到的理想状态.最理想的......
  • poj 2415(BFS)
    题意: 有一种游戏,共有三个piece(不妨称为棋子),棋盘是由N个点构成的完全图,边有颜色。每次可以移动一个棋子,移动时必须满足棋子走过的边的颜色和其他两个棋子之间的连边的颜色一致。求把三个棋子移到同一个顶点的最少次数。这道题是一个很简单的BFS,但为何一直TLE。。。。#include<ios......
  • hdu 1511(dp)
    解题思路:两次dp确实很巧妙,我只想到了一次dp算出最后那个数最小,其实题目要求还要保证第一个数尽可能大,一开始也没有注意到。。AC:#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<math.h>#include<stdlib.h>#include<time.h>usingnamesp......
  • POJ 1505(二分+贪心)
    题意:给一些书,这些书有不同的页数,让把这些书分成k份,必须是连续的,问这些份中页数和的最大值最小是多少。解题思路:知道了页数和的范围,而且书都是连续的,要找到页数和最大值的最小值可以直接二分答案。。AC:#include<iostream>#include<cstdlib>#include<cstring>usingnamespacestd......
  • hdu 5157(manacher+前缀和+树状数组)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5157解题思路:我们可以先用mancher算法对字符串进行处理,把以每个点为中心的回文串半径求出来,然后进行处理。加入对以p为中心的点,从p-r[i]+1~p都是回文串的开头,那么对于每个回文串(开头是j)只要记录结尾从1~j-1的回文串个数,我们可......
  • 艾媒金榜|2023年中国信创数据库企业TOP15
    数据库是一种用于存储和管理拥有固定格式和结构数据的仓库型数据管理系统。数据库处于IT架构的核心位置,是连接上层应用和底层基础资源的重要枢纽,向上是各种应用的支撑引擎,向下调动计算、网络、存储等基础资源。在信息化时代,数据库已经逐渐应用于各行各业。本次上榜的企业分别为:人......
  • ASEMI单向可控硅BT151参数,BT151封装,BT151体积
    编辑-Z单向可控硅BT151参数:型号:BT151存储接点温度范围Tstg:-40~150℃工作接点温度范围Tj:-40~125℃断态重复峰值电压VDRM:650V重复峰值反向电压VRRM:650VRMS导通电流IT(RMS):12A非重复浪涌峰值导通电流ITSM:120A峰值栅极电流IGM:2A平均栅极功耗PG(AV):0.5W峰值栅极功率PGM:5WIGT:4mAVGT:0.75VV......
  • ASEMI单向可控硅BT151参数,BT151封装,BT151体积
    编辑-Z单向可控硅BT151参数:型号:BT151存储接点温度范围Tstg:-40~150℃工作接点温度范围Tj:-40~125℃断态重复峰值电压VDRM:650V重复峰值反向电压VRRM:650VRMS导通电流IT(RMS):12A非重复浪涌峰值导通电流ITSM:120A峰值栅极电流IGM:2A平均栅极功耗PG(AV):0.5W峰值栅极功率PGM:5WIG......
  • 遥控器、电子秤等包含纽扣电池商品应该如何办理16CFR1700.15和16CFR1700.20/ANSI C18.
    本政策适用的纽扣电池和硬币电池本政策适用于独立式纽扣电池或硬币电池,它们是扁圆形的单体电池,直径通常为5到25毫米,高度为1到6毫米。纽扣电池和硬币电池可作为单独的电池出售,但也用于各种消费品和家居用品中,其中包括遥控器、钟表、电脑、照相机、计算器、手电筒、无焰蜡烛......