搭档
典型的双指针算法:
先将男、女魅力值排序,如果可以搭档,那是最好。若不能,就调魅力值小的那一边。
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n, m, j = 1, i = 1, ans;
int a[110], b[110];
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i ++ ) scanf("%d", &a[i]);
scanf("%d", &m);
for (int i = 1; i <= m; i ++ ) scanf("%d", &b[i]);
sort(a + 1, a + n + 1);
sort(b + 1, b + m + 1);
while (i <= n && j <= m) {
if(abs(a[i] - b[j]) <= 1) ans ++, i ++, j ++;
else if(a[i] > b[j]) j ++;
else if(a[i] < b[j]) i ++;
}
printf("%d", ans);
return 0;
}