关注
T3通过代码,不过题目描述似乎有问题,反馈他们说没问题。 #include <iostream>
#include <sstream>
#include <vector>
#include <string>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <stack>
#include <queue>
#include <map>
using namespace std;
#define MAXN 50010
const int INF = 1e9;
int idx[MAXN];
int b[MAXN];
int a;
int dp[MAXN];
int main()
{
int n;
scanf("%d", &n);
for(int i=0; i<n; i++){
scanf("%d", &a);
idx[a-1] = i;
}
for(int i=0; i<n; i++){
scanf("%d", &a);
b[i] = idx[a-1];
dp[i] = INF; // 初始化为无限大
}
//最长递增子序列
int pos = 0; // 记录dp当前最后一位的下标
dp[0] = b[0]; // dp[0]值显然为a[0]
for (int i = 1; i < n; i++) {
if (b[i] > dp[pos]) // 若a[i]大于dp数组最大值,则直接添加
dp[++pos] = b[i];
else // 否则找到dp中第一个大于等于a[i]的位置,用a[i]替换之。
dp[lower_bound(dp, dp + pos + 1, b[i]) - dp] = b[i]; // 二分查找
}
printf("%d\n", pos+1);
return 0;
}
查看原帖
点赞 2
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你小心翼翼的闯过多大的祸? #
3957次浏览 68人参与
# 找不到实习会影响秋招吗 #
1399813次浏览 13635人参与
# 实习没事做是福还是祸? #
4289次浏览 68人参与
# 重来一次,你会对开始求职的自己说 #
935次浏览 19人参与
# 2025年终总结 #
134401次浏览 2294人参与
# 考研人,我有话说 #
156596次浏览 1211人参与
# 哪些公司笔/面试难度大? #
7074次浏览 32人参与
# 实习简历求拷打 #
24097次浏览 249人参与
# 你觉得现在还能进互联网吗? #
29961次浏览 201人参与
# 携程工作体验 #
18952次浏览 66人参与
# 大厂VS公务员你怎么选 #
69141次浏览 638人参与
# 扒一扒那些奇葩实习经历 #
140178次浏览 1149人参与
# 找不到好工作选择GAP真的丢人吗 #
93701次浏览 1007人参与
# 那些我实习了才知道的事 #
253100次浏览 1785人参与
# 非技术投递记录 #
672932次浏览 6820人参与
# 机械求职避坑tips #
81087次浏览 531人参与
# 投格力的你,拿到offer了吗? #
154959次浏览 829人参与
# 第一份工作能做外包吗? #
94065次浏览 599人参与
# 作业帮求职进展汇总 #
85480次浏览 559人参与
# 秋招遇到的奇葩面试题 #
101263次浏览 416人参与