我正在尝试一个简单的问题,要求我提供一个整数和一个值的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)吗?