今日头条2018 笔试题1

/*
今天头条2018春招笔试题
在n个元素的数组中,找到差值为k的数字对去重后的个数
输入描述:
第一行,n和k,n表示数字个数,k表示差值
第二行,n个正整数。
示例1:
输入:
5 2
1 5 3 4 2
输出:
3
示例2:
输入:
6 2
1 5 3 3 4 2
输出:
3
示例3:
输入:
4 0
1 1 1 1
输出:1
*/
//author:sandy
#include <bits/stdc++.h>
using namespace std;
int main()
{
vector<int>vec;
int n, k;
cin >> n >> k;
int i = 0, m;
while (i<n&&cin>>m)
vec.push_back(m),++i;
sort(vec.begin(), vec.end());
vec.erase(unique(vec.begin(), vec.end()), vec.end());//去重,并删除后面的元素
int num = 0;
for (auto j = vec.begin(); j != vec.end(); ++j)
for (auto r = j; r != vec.end();++r)
if (abs(*j - *r) == k) ++num;
cout << num << endl;
return 0;
}

原文地址:https://www.cnblogs.com/beihaidao/p/8643216.html