"编写一个函数,它将矢量类型的对象作为输入 在常数时间中移除等级k处的元素,O(1)[常数]。假设元素的顺序无关紧要。"
我以为我可能对此有所了解。但是,当我开始尝试使用.erase()时,我查找了大O符号,并发现它是O(n),就像线性关系一样。我现在无法想到任何其他方式。我不想要任何代码,但我认为如果有人可以提供帮助,伪代码至少会指向正确的方向
答案 0 :(得分:17)
假设元素的顺序无关紧要。
这是你需要注意的。
假设你有一个向量
0 1 2 3 4 5 6
并且您要删除3.您可以将其转换为
0 1 2 6 4 5在O(1)中
没有任何问题。
答案 1 :(得分:12)
实际上,有一种方法可以做到这一点。这是伪代码:
答案 2 :(得分:1)