1228: 顺序表的删除I

题目描述

长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,删除线性表中所有值为x的数据元素。

输入

输入包含一个整数n代表顺序表L长度,一个x代表要删除的元素。

接下来包含n个整数,代表顺序表L中的元素。

输出

输出删除元素x后的顺序表。

样例输入
复制代码
5 2
1 3 2 5 2
样例输出
复制代码
1 3 5

代码:

cpp 复制代码
	#include<bits/stdc++.h>
	using namespace std;
	bool Delete_x(vector<int> &a, int &len, int x){//删除线性表中所有值为x的元素 
		if(a.empty()==true){
			return false;
		}
		int count = 0;//用于记录值为x的元素个数 
		for(int i=0;i<len;++i){
			if(a[i]==x){
				count++;
			}
			else{
				a[i-count]=a[i];//当前位置元素向前移动k个位置 
			}
		} 
		len = len - count;
		return true;
	}
	int main(){
		int n,x;//n为顺序表长度,x为要删除的元素的值 
		scanf("%d %d",&n,&x);
		int len = n;
		vector<int> a(n);
		for(int i=0;i<len;++i){
			scanf("%d",&a[i]);
		}
		if(Delete_x(a,len,x)==true){
			for(int i=0;i<len;++i){
				printf("%d ",a[i]);
			}
		}
		else{
			printf("ERROR\n");
		}
		return 0;
	}
相关推荐
历程里程碑6 小时前
Linux20 : IO
linux·c语言·开发语言·数据结构·c++·算法
郝学胜-神的一滴6 小时前
深入浅出:使用Linux系统函数构建高性能TCP服务器
linux·服务器·开发语言·网络·c++·tcp/ip·程序人生
天若有情6736 小时前
【自研实战】轻量级ASCII字符串加密算法:从设计到落地(防查岗神器版)
网络·c++·算法·安全·数据安全·加密
czy87874757 小时前
深入了解 C++ 中的 `std::bind` 函数
开发语言·c++
我在人间贩卖青春7 小时前
C++之继承的方式
c++·private·public·protected·继承方式
智者知已应修善业8 小时前
【洛谷P9975奶牛被病毒传染最少数量推导,导出多样例】2025-2-26
c语言·c++·经验分享·笔记·算法·推荐算法
Trouvaille ~8 小时前
【Linux】应用层协议设计实战(一):自定义协议与网络计算器
linux·运维·服务器·网络·c++·http·应用层协议
CSCN新手听安8 小时前
【linux】高级IO,I/O多路转接之poll,接口和原理讲解,poll版本的TCP服务器
linux·运维·服务器·c++·计算机网络·高级io·poll
CSCN新手听安8 小时前
【linux】网络基础(三)TCP服务端网络版本计算器的优化,Json的使用,服务器守护进程化daemon,重谈OSI七层模型
linux·服务器·网络·c++·tcp/ip·json
m0_736919108 小时前
C++中的委托构造函数
开发语言·c++·算法