【每周例题】力扣 C++ 移除元素
移除元素
题目

思路分析
1.涉及到容器,那么就很直接的想法,遍历容器,找出与val相同的数,移除,然后利用函数输出长度与移除后的数组
2.移除部分我们使用指针去处理,用指针遍历数组,符合移除条件的利用erase函数移除
注:这里使用到了一个万能头文件,参加蓝桥杯的同学可以试试运用一下
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
vector<int> nums(n);
for (int i = 0; i < n; i++)
{
cin >> nums[i];
}
int val;
cin >> val;
vector<int>::iterator it = nums.begin();
while (it!=nums.end())
{
if (*it == val)
{
it = nums.erase(it);
}
else
{
++it;
}
}
cout << nums.size() << endl;
for (int i = 0; i < nums.size(); i++)
{
cout << nums[i]<<" ";
}
return 0;
}
放在力扣的答案:
class Solution {
public:
int removeElement(vector<int>& nums, int val)
{
vector<int>::iterator it = nums.begin();
while (it != nums.end())
{
if (*it == val)
{
it = nums.erase(it);
}
else
{
++it;
}
}
return nums.size();
}
};

浙公网安备 33010602011771号