我试图在 O(n) 时间内解决一个问题,给定两个前向迭代器到一个容器的前面和一个容器的后面,我想删除容器中至少不出现的所有元素 <这个次数 > 次。例如,给定一个字符串向量,例如 ("john", "hello", "one", "yes", "hello", "one"),我想删除所有出现少于 2 次的元素,我的最终向量将只包含 ("hello", "one")。
我在想,如果我可以在 O(n) 时间内进行一般排序,我可以完成这个结果(在 O(n) 时间内),但我很难用字符串、整数、字符或其他任何可能被使用(一般)。我是否正确地考虑了这一点,还是有更简单的方法来解决问题?