利用set进行数组去重
题目

关于map和set的区别


该题的题解
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <unordered_set>
using namespace std;
typedef long long LL;
LL sum = 0;
unordered_set<int> st;
int main()
{
int n, k;
cin >> n >> k;
for (int i = 0; i < n; i++)
{
int temp;
cin >> temp;
if (temp >= 1 && temp <= k)
{
st.insert(temp);
}
}
sum = (LL)k * (k + 1) / 2; //这里必须要转换为LL类型,否则会溢出。因为k定义的是int类型。
LL sum2 = 0;
for (int t : st)
{
sum2 += t;
}
cout << sum - sum2;
return 0;
}
浙公网安备 33010602011771号