搭档

典型的双指针算法:
先将男、女魅力值排序,如果可以搭档,那是最好。若不能,就调魅力值小的那一边。

#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;
}
posted @ 2022-02-05 21:26  福宝j  阅读(73)  评论(0编辑  收藏  举报