首页 > 编程语言 >【每周例题】力扣 C++ 移除元素

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

时间:2024-04-09 18:56:04浏览次数:25  
标签:val nums int cin C++ vector 移除 例题

移除元素

题目

移除元素

 思路分析

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();
	}
};

  

 

标签:val,nums,int,cin,C++,vector,移除,例题
From: https://www.cnblogs.com/hcrzhi/p/18124572

相关文章

  • 【每周例题】蓝桥杯 C++ 多数
    多数元素题目多数元素思路分析一.第一个想法,暴力遍历,然后会发现容易超时,那么更进一步想:哈希表使用哈希表存储每个数出现的次数,即使用哈希映射(HashMap)来存储每个元素以及出现的次数。对于哈希映射中的每个键值对,键表示一个元素,值表示该元素出现的次数加入后,遍历所有键值对,......
  • C++程序分享--常见编程面试题:判断字符串是否为回文串
    关注我,持续分享逻辑思维&管理思维;可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;有意找工作的同学,请参考博主的原创:《面试官心得--面试前应该如何准备》,《面试官心得--面试时如何进行自我介绍》, 《做好面试准备,迎接2024金三银四》。【图解《程序员面试常见的十大算法......
  • C/C++与Python:各自的优势与前景展望
    在讨论C/C++和Python这两种编程语言的前景时,我们必须认识到每种语言都有其独特的定位和应用场景,并不存在绝对意义上的“谁更有前景”。它们分别在不同的领域发挥着重要作用,而且在未来的技术发展过程中,二者都将继续保持其不可替代的地位。C/C++:底层与性能优势C和C++是两种历史......
  • C++继承之protected继承
    1概述  通过继承机制,可以利用已有的对象类型来定义新对象类型。所定义的新对象类型不仅仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。。2对象访问作用域作用域:publi......
  • 改进NeteaseCloudMusicGtk4:添加移除歌曲按钮
    之前已经发了一篇博客简述了如何阅读这个项目,尽管这个项目已经开源很久了,但我找了很久都没有找到怎么从播放列表移除歌曲,那就自己动手实现,再提个PR吧。运行起来应用后通过Inspector(Ctrl+Shift+I)找到希望放置按钮的位置:专辑按钮的旁边。第一步就是修改UI文件,把这个按钮显示出......
  • 移除链表元素(虚拟节点法、力扣203)
    题目给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val==val 的节点,并返回 新的头节点 。示例1:输入:head=[1,2,6,3,4,5,6],val=6输出:[1,2,3,4,5]示例2:输入:head=[],val=1输出:[]示例3:输入:head=[7,7,7,7],val=......
  • 【华为OD机试真题】218、寻找相似单词 | 机试真题+思路参考+代码分析(C语言、C++、Java
    文章目录一、题目......
  • 【华为OD机试真题】217、最长广播响应 | 机试真题+思路参考+代码分析(C语言、C++、Java
    文章目录一、题目......
  • C++笔记:STL容器库的使用
    前置:    对于stl容器库,我只做了一些常用的笔记,关于更详细的使用可以参考:https://cppreference.com/https://cppreference.com/一.string--字符串对于C++中string字符串会比C语言的字符数组使用起来会顺手许多。命名空间:std关于迭代器可以理解为指针,和指针的使......
  • 《模版模式(极简c++)》
            本文章属于专栏-概述-《设计模式(极简c++版)》-CSDN博客       本章简要说明适配器模式。本文分为模式说明、本质思想、实践建议、代码示例四个部分。模式说明方案:模版模式定义了一个逻辑的骨架,将某些步骤推迟到子类中实现。父类定义了一个模版方......