4 条题解
信息
- ID
- 67
- 时间
- 3000ms
- 内存
- 512MiB
- 难度
- 1
- 标签
- 递交数
- 406
- 已通过
- 260
- 上传者
可以对于每个数 ai,用一个 map
来记录他们出现过。那么只需要将所有数存进 map
后,对于每个数 ai,查询 ai+k 是否存在即可。时间复杂度 Θ(nlogn),logn 为 map
常数。
#include <bits/stdc++.h>
using namespace std;
int a[100005];
map<int,int> mp;
int main() {
int n,k; cin >> n >> k; for(int i = 1;i <= n;i++) { cin >> a[i]; mp[a[i]]++; }
for(int i = 1;i <= n;i++) {
if(mp[a[i]+k]) {
cout << "Yes"; exit(0);
}
}
cout << "No\n";
return 0;
}