- class Solution {
- public:
- int longestCommonSubsequence(string text1, string text2) {
- int m=text1.size();
- int n=text2.size();
- vector
int>> f(m+1,vector<int>(n+1,0)); - for(int i=1;i<=m;i++){
- for(int j=1;j<=n;j++){
- if(text1[i-1]==text2[j-1]){
- f[i][j]=f[i-1][j-1]+1;
- }
- else {
- f[i][j]=max(f[i-1][j],f[i][j-1]);
- }
- }
- }
- return f[m][n];
- }
- };
- class Solution {
- public:
- int maxUncrossedLines(vector<int>& nums1, vector<int>& nums2) {
- int m = nums1.size();
- int n = nums2.size();
- vector
int>> f(m+1,vector<int>(n+1,0)); - for(int i=1;i<=m;i++){
- for(int j=1;j<=n;j++){
- if(nums1[i-1]==nums2[j-1])
- f[i][j]=f[i-1][j-1]+1;
- else f[i][j] = max(f[i-1][j],f[i][j-1]);
- }
- }
- return f[m][n];
- }
- };
- class Solution {
- public:
- int maxSubArray(vector<int>& nums) {
- int n=nums.size();
- if(n==0) return 0;
- int f[n+2];
- f[0]=nums[0];
- int res = nums[0];
- for(int i=1;i
- f[i]=max(f[i-1]+nums[i],nums[i]);
- res=max(f[i],res);
- }
- return res;
- }
- };