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;
	}
相关推荐
tan180°3 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
彭祥.5 小时前
Jetson边缘计算主板:Ubuntu 环境配置 CUDA 与 cudNN 推理环境 + OpenCV 与 C++ 进行目标分类
c++·opencv·分类
lzb_kkk5 小时前
【C++】C++四种类型转换操作符详解
开发语言·c++·windows·1024程序员节
胖大和尚7 小时前
clang 编译器怎么查看在编译过程中做了哪些优化
c++·clang
钱彬 (Qian Bin)8 小时前
一文掌握Qt Quick数字图像处理项目开发(基于Qt 6.9 C++和QML,代码开源)
c++·开源·qml·qt quick·qt6.9·数字图像处理项目·美观界面
双叶8368 小时前
(C++)学生管理系统(正式版)(map数组的应用)(string应用)(引用)(文件储存的应用)(C++教学)(C++项目)
c语言·开发语言·数据结构·c++
源代码•宸9 小时前
C++高频知识点(二)
开发语言·c++·经验分享
jyan_敬言10 小时前
【C++】string类(二)相关接口介绍及其使用
android·开发语言·c++·青少年编程·visual studio
liulilittle11 小时前
SNIProxy 轻量级匿名CDN代理架构与实现
开发语言·网络·c++·网关·架构·cdn·通信
tan77º11 小时前
【Linux网络编程】Socket - UDP
linux·服务器·网络·c++·udp