题目:删除数组中指定的元素,并返回删除之后数组的长度。要求:控件复杂度为O(1)例如:原始数组nums=[3,2,2,3],val=3;删除3之后的数组为num=[2,2],返回的数组长度为2。核心思想:引入变量x;将x作为新数组的索引,遍历nums判断nums[i]和val值的关系,若不等则将i位置上的值存入到x位置中。最终前x位置上的元素为删除val之后的数组。C++代码:
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int x=0;
for (int i = 0; i < nums.size(); i++)
{
if (nums[i] != val)
{
nums[x] = nums[i];
x++;
}
}
cout << x << endl;
return x;
}
};