- 1143.最长公共子序列
class Solution {
public:int longestCommonSubsequence(string text1, string text2) {int res=0;vector<vector<int>> dp(text1.size() + 1, vector<int>(text2.size() + 1, 0));for (int i = 1; i <= text1.size(); i++) {for (int j = 1; j <= text2.size(); j++) {if (text1[i - 1] == text2[j - 1]) {dp[i][j] = dp[i - 1][j - 1] + 1;} else {dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);}if(dp[i][j]>res)res=dp[i][j];}}
// return dp[text1.size()][text2.size()];
return res;}
};
- 1035.不相交的线
class Solution {
public:int longestCommonSubsequence(string text1, string text2) {int res=0;vector<vector<int>> dp(text1.size() + 1, vector<int>(text2.size() + 1, 0));for (int i = 1; i <= text1.size(); i++) {for (int j = 1; j <= text2.size(); j++) {if (text1[i - 1] == text2[j - 1]) {dp[i][j] = dp[i - 1][j - 1] + 1;} else {dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);}if(dp[i][j]>res)res=dp[i][j];}}
// return dp[text1.size()][text2.size()];
return res;}
};
- 53. 最大子序和 动态规划
-
class Solution { public:int maxSubArray(vector<int>& nums) {if(nums.size()==0)return 0;vector<int>dp(nums.size());dp[0]=nums[0];int res=dp[0];for(int i=1;i<nums.size();i++){dp[i]=max(dp[i-1]+nums[i],nums[i]);if(res<dp[i])res=dp[i];} return res;} };