当前位置: 首页 > news >正文

leetcode 392. 判断子序列

2023.8.25

         本题要判断子序列,可以使用动态规划来做,定义一个二维dp数组接下来就是常规的动态规划求解子序列的过程。  给出两种定义dp数组的方法。

二维bool型dp数组:

class Solution {
public:bool isSubsequence(string s, string t) {if(s.size() == 0 && t.size() == 0) return true;if(s.size() == 0) return true;if(t.size() == 0) return false;vector<vector<bool>> dp(s.size()+1 , vector<bool>(t.size()+1 , false));dp[0][0] = true;//初始化第一行for(int i=1; i<=t.size(); i++){dp[0][i] = dp[0][i-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];else dp[i][j] = dp[i][j-1];}}return dp[s.size()][t.size()];}
};

二维int型dp数组:

class Solution {
public: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.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] + 1;else dp[i][j] = dp[i][j-1];}}if(dp[s.size()][t.size()] == s.size()) return true;else return false;}
};

http://www.lryc.cn/news/140227.html

相关文章:

  • 课程项目设计--spring security--认证管理功能--宿舍管理系统--springboot后端
  • 【算法日志】动态规划刷题:完全背包应用问题(day39)
  • 基于Python的图书馆大数据可视化分析系统设计与实现【源码+论文+演示视频+包运行成功】
  • cmake 交叉编译应用程序:手动设置链接脚本
  • 深入探讨Eureka的三级缓存架构与缓存运行原理
  • leetcode496. 下一个更大元素 I 【单调栈】
  • Fastadmin框架 聚合数字生活抵扣卡系统v2.8.6
  • windows下MSYS、MinGW编译环境使用网络API时报错:undefined reference to `inet_pton‘解决办法
  • unity-AI自动导航
  • 使用create-react-app创建react项目
  • 12.串,串的存储结构与模式匹配算法
  • Ribbon:listOfServers ,${variableName:defaultValue}
  • TensorFlow二元-多类-多标签分类示例
  • 【回眸】牛客网刷刷刷!(七)——通信协议之 网络通讯
  • MySQL 安装配置
  • 【0824作业】C++ 拷贝赋值函数、匿名对象、友元、常成员函数和常对象、运算符重载
  • ubuntu 22.04 LTS openai triton 安装
  • Android SDK 上手指南||第七章 Java应用程序编程
  • Vue 框架如何获取数组中的值?
  • 如何成立一家音频芯片/算法设计公司
  • 用docker-compose搭建LNMP
  • JavaScript:基本语法(变量与函数的定义与使用)
  • 树莓派4B上安装Gitlab
  • JVM 之字节码(.class)文件
  • neo4j函数
  • wazuh初探系列一 : wazuh环境配置
  • 【2023】Spring Validation中@NotNull注解、@NotBlank注解介绍以及使用
  • nodejs+vue养老院管理系统 u1yrv
  • 高效PDF校对:释放高质量内容的力量
  • 【Git游戏】提交的技巧