社区讨论
50pts崩溃求调
P1439两个排列的最长公共子序列参与者 5已保存回复 14
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 14 条
- 当前快照
- 1 份
- 快照标识符
- @m2jwd6jy
- 此快照首次捕获于
- 2024/10/22 11:39 去年
- 此快照最后确认于
- 2025/11/04 23:49 4 个月前
不知道哪里错了,在力扣是过的//力扣1143
#include<iostream>
using namespace std;
#define int long long
#define maxn 300010
int text1[maxn],text2[maxn],n;
int longestCommonSubsequence(int text1[], int text2[])
{
int dp[n+1][n+1];
dp[0][0] = text1[0] == text2[0] ? 1 : 0;
for(int i = 1;i < n;i++)
{
if(text1[i] != text2[0] && dp[0][i-1] == 0)
dp[0][i] = 0;
else
dp[0][i] = 1;
}
for(int i = 1;i < n;i++)
{
if(text2[i] != text1[0] && dp[i-1][0] == 0)
dp[i][0] = 0;
else
dp[i][0] = 1;
for(int j = 1;j < n;j++)
{
if(text2[i] == text1[j])
dp[i][j] = dp[i-1][j-1] + 1;
else
dp[i][j] = max(dp[i-1][j],dp[i][j-1]);
}
}
return dp[n-1][n-1];
}
main()
{
cin >> n;
for(int i = 0; i < n ;i++)
cin >> text1[i];
for(int i = 0; i < n ;i++)
cin >> text2[i];
cout << longestCommonSubsequence(text1,text2);
}
回复
共 14 条回复,欢迎继续交流。
正在加载回复...