南昌网站seo,烟台网站建设推荐企汇互联见效付款,广告制作公司电话,商贸公司寮步网站建设价钱2023.8.25 本题要判断子序列#xff0c;可以使用动态规划来做#xff0c;定义一个二维dp数组。 接下来就是常规的动态规划求解子序列的过程。 给出两种定义dp数组的方法。
二维bool型dp数组#xff1a;
class Solution {
public:bool isSubsequence(string s, string t) …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;vectorvectorbool dp(s.size()1 , vectorbool(t.size()1 , false));dp[0][0] true;//初始化第一行for(int i1; it.size(); i){dp[0][i] dp[0][i-1];}for(int i1; is.size(); i){for(int j1; jt.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) {vectorvectorint dp(s.size()1,vectorint(t.size()1 , 0));for(int i1; is.size(); i){for(int j1; jt.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;}
};