fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. bool contain(vector<int>& nums, int k) {
  5. unordered_map<int,int> mp;
  6. for (int i = 0; i < nums.size(); ++i) {
  7. if(mp.find(nums[i])!=mp.end() && i-mp[nums[i]]<=k) return true;
  8.  
  9. mp[nums[i]]=i;
  10. }
  11. return false;
  12. }
  13.  
  14. int main() {
  15. vector<int> nums={34, 2, 8, 2, 34, 8};
  16. int k=2;
  17. if (contain(nums, k)) {
  18. cout << "There are two equal numbers within distance " << k << endl;
  19. } else {
  20. cout << "No two equal numbers found within distance " << k << endl;
  21. }
  22. return 0;
  23. }
  24.  
Success #stdin #stdout 0s 5292KB
stdin
Standard input is empty
stdout
There are two equal numbers within distance 2