fork download
  1. #include <iostream>
  2. #include <list>
  3. #include <unordered_map>
  4. using namespace std;
  5.  
  6. int main() {
  7. list<int> list_1 = {1, 2, 4, 4, 6, 9};
  8. list<int> list_2 = {1, 0, 4, 4, 7, 8};
  9. list_1.unique(); // O(n)
  10. list_2.unique(); // O(n)
  11.  
  12. size_t counter = 0;
  13. unordered_map <int, size_t> map;
  14. size_t i = 0;
  15.  
  16. for (auto it = list_1.begin(); it != list_1.end(); ++it, ++i) // O(n)
  17. map.insert( {*it, i} );
  18.  
  19.  
  20.  
  21. for (int &i : list_2) { // O(n)
  22. if (map.find(i) != map.end())
  23. ++counter;
  24. }
  25.  
  26. cout << "there is " << counter << " identical elements\n";
  27.  
  28. return 0;
  29. }
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
there is 2 identical elements