基于值从向量中删除元素的时间复杂度

时间:2018-08-04 07:29:58

标签: c++ vector

我正在尝试一个简单的问题,要求我提供一个整数和一个值的std :: vector,从该向量中删除具有该值的所有元素,然后返回所得向量的大小。我最终写的代码是

int removeElement(vector<int>& nums, int val) {
    for (int i = 0; i < nums.size(); ) {
        if (nums[i] == val) {
            nums.erase(nums.begin() + i);
        } else {
            i++;
        }
    }
    return nums.size();
}

但是,经过我的代码之后,由于我要在循环内删除向量中的元素,因此此解决方案实际上是O(n ^ 2)吗?

0 个答案:

没有答案