题目名字
整数配对(贪心)
题意
给两个数组,每个数组中的数字进行比较,当a<=b时配对成功,次数加一,配对成功的的数字不放回不继续配对
思路
- 先sort从小到大排序
- 用while循环进行比较
坑点
- 不能用双重for循环,因为题目中配对成功的不允许放回,所以只能用while循环
算法一:XX+XX
代码
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
int S[n+5],T[n+5];
for(int i=0;i<n;i++){
cin>>S[i];
}
for(int i=0;i<m;i++){
cin>>T[i];
}
sort(S,S+n);
sort(T,T+m);
int ans=0;
int i=0,j=0;
while(i<n&&j<m){//取完的就不能放回了
if(S[i]<=T[j]){
ans++;
i++;
j++;
}
else{
j++;
}
}
cout<<ans;
return 0;
}