删除给定数组中的指定元素
来源:互联网 发布:mcs51单片机数据总线 编辑:程序博客网 时间:2024/06/10 10:45
最近想起了一个题:删除一个给定数组中的指定元素,要删除后还是一个连续分布的数组,也就是删除过程中要做相邻移位。
曾经见到一个非常简洁的做法,不过怎么都想不起来了。自己做了一个,希望有兴趣的朋友能给出更好的做法。
以下是我自己的实现函数,对给定数组a[n],删除值为x的元素,返回值为删除后数组的长度。
int csa(int a[],int n,int x){ int i=0,j=0,k=0; //i寻找不等于x的元素,j指向新数组结尾 while(a[i]!=x&&i<n) i++; if(a[i]==x) j=i; //找到第一个x位置 while(i<n) //删除所有x元素 { while(a[i]==x) i++; if(i<n) a[j++]=a[i++]; } k=j; //新数组长度 //while(j<n) a[j++]=-1; //多余位置统一赋0 return k;}
下面是测试用例:
int main(){ int j = 0, n , x; cout<<"Input the length of your arrary: "; cin>>n; int *a=new int[n]; cout<<"And elements: "<<endl; while(j<n) cin>>a[j++]; cout<<"Cancel number: "; cin>>x; int rlength=csa(a,n,x); cout<<"After canceling: "<<endl; int i=0; while(a[i]!=-1&&i<n) { cout<<a[i++]<<" "; } cout<<endl<<"Real length of the array is "<<rlength<<endl; return 0;}
测是结果举例:
Input the length of your arrary: 10
And elements:
2 2 1 3 4 2 5 6 2 2
Cancel number: 2
After canceling:
1 3 4 5 6
New length of the array is 5
0 0
- 删除给定数组中的指定元素
- 删除动态数组中的指定元素
- js删除数组中的指定元素
- js 删除数组中的指定元素
- 删除数组指定元素
- JS中如何删除数组中的指定元素
- JS根据指定值删除数组中的元素
- JAVA中的数组插入与删除指定元素
- java中删除 数组中的指定元素方法
- 删除数组中给定的元素
- js数组删除给定的元素
- JS删除数组指定元素
- PHP删除数组指定元素
- php删除数组指定元素
- php删除数组指定元素
- php删除数组指定元素
- jquery删除数组指定元素
- jquery删除指定数组元素
- UITabBarController使用详解
- 交换两个数的特殊方法
- 关于Android滑动冲突的解决方法(一)
- 腾讯面试记录
- p349图的DFS
- 删除给定数组中的指定元素
- NavigationToolBar的使用
- 【poj 1159】Palindrome 题意&题解&代码(C++)
- (4.6.4)性能优化之Java(Android)代码优化
- Android Studio下如何配置AIDL文件并生成java文件
- (4.6.5)移动端网络优化
- phpcms学习笔记
- 网易前端实习生笔试最后一题ajax实现文件上传带进度条
- 在eclipse中使用run as->maven build报错 -Dmaven.multiModuleProjectDirectory system propery is not set. Chec