正经题解|赛题挑选
2026-04-08 20:33:08
发布于:河北
3阅读
0回复
0点赞
废话少说,上代码
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
// 提高输入输出速度,解除cin/cout与stdio的同步
ios::sync_with_stdio(false);
cin.tie(nullptr); // 解除cin与cout的绑定
cout.tie(nullptr); // 解除cout自身的绑定
int n=0;
cin>>n; // 输入数组长度
// 定义两个大小为n的整型向量
vector<int> a(n),b(n);
// 输入第一个数组
for(int i=0;i<n;++i)
cin>>a[i];
// 输入第二个数组
for(int i=0;i<n;++i)
cin>>b[i];
// 对两个数组进行升序排序
sort(a.begin(),a.end());
sort(b.begin(),b.end());
int count=0,i=0,j=0; // count记录结果,i遍历b数组,j遍历a数组
// 双指针算法:寻找a数组中每个元素在b数组中的匹配位置
while(i<n&&j<n){
if(a[j]<=b[i])
j++; // 如果a[j] <= b[i],则j指针前移
i++; // i指针始终前移
}
// 计算结果:n-j表示有多少个a数组的元素被成功匹配
count=n-j;
cout<<count; // 输出结果
return 0;
}
这里空空如也








有帮助,赞一个