It may be the case that the constant factor of Algorithm 2 is bigger than the constant factor of Algorithm 3. If the test cases were very large, then Algorithm 2 would be faster than Algorithm 3.

unordered_set is slow. avoid it if possible.

Technically on average it is O(1), faster than the O(log(n)) for set.

yeah