-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path1035.cpp
More file actions
31 lines (26 loc) · 835 Bytes
/
1035.cpp
File metadata and controls
31 lines (26 loc) · 835 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Solution {
public:
int maxUncrossedLines(vector<int>& nums1, vector<int>& nums2) {
vector<vector<int>>dp(nums1.size(),vector<int>(nums2.size(), -1));
int ans=com(nums1,nums2,0,0,dp);
return ans;
}
int com(vector<int>& nums1,vector<int>& nums2,int i,int j,vector<vector<int>>&dp){
if(i==nums1.size() || j==nums2.size()){
return 0;
}
if(dp[i][j]!=-1){
return dp[i][j];
}
if(nums1[i]==nums2[j]){
int t=com(nums1,nums2,i+1,j+1,dp);
// cout<<t<<" "<<endl;
return dp[i][j]=1+t;
}else{
int t1=com(nums1,nums2,i+1,j,dp);
int t2=com(nums1,nums2,i,j+1,dp);
// cout<<t1<<" "<<t2<<" "<<endl;
return dp[i][j]=max(t1,t2);
}
}
};