alt
这个题目,对于alice而言,第一次需要拿最小的出现一次的元素,否则,这个元素就会被bob拿到,也就是最小的结果。对于bob而言,第一个最小的出现一次的元素已经被拿了,要想最优化答案,bob需要拿第二个最小的出现第一次的元素。我们需要遍历0-n,如果mp[i]为0,那么i就是答案,因为这个i永远不会被填充。如果mp[i]为1,我们让cnt++,当cnt为2的时候这就是我们的答案。

typedef unsigned long long ull;
typedef long long ll;
using namespace std;
const int N = 1 << 19;
const int mod  = 1e9 + 7;
/**
 * 不要使用#define int long long
 * 不开long long见祖宗
 *                  ----YuFei Zhou
 */
void solve() {
    int n;
    cin>>n;
    map<int,int> mp;
    for (int i = 1; i <= n; ++i) {
        int x;
        cin>>x;
        mp[x]++;
    }
    int cnt = 0,ans = 0;
    for (int i = 0; i <= n; ++i) {
        if(mp[i] == 0){
            ans = i;
            break;
        }else if(mp[i] == 1){
            cnt++;
            if(cnt == 2){
                ans = i;
                break;
            }
        }
    }
    cout<<ans<<endl;
}
int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL),cout.tie(NULL);
    int t = 1;
    cin>>t;
    while(t--){
        solve();//1 2 3 4 5
    }
    return 0 ;
}