【每周例题】力扣 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();
	}
};

  

 

posted @ 2024-04-09 18:46  山远尽成云  阅读(30)  评论(0)    收藏  举报