您的位置:首页 > 其它

leetcode--Remove Element

2014-11-03 15:07 218 查看
Given an array and a value, remove all instances of that value in place and return the new length.

The order of elements can be changed. It doesn't matter what you leave beyond the new length.

class Solution {
public:
int removeElement(int A[], int n, int elem) {
int B
;
int j=0;
for(int i=0;i<n;++i)
{
if(A[i]!=elem){B[j]=A[i];++j;}
}
for(int k=0;k<j;++k)
{
A[k]=B[k];
}
return j;
}
};


如果不定一个数列的副本而是直接在原数列上修改的的话,用两个指针跟踪,一个是普通的最前端指针,一个是存放无重复元素的最前端指针。

class Solution {
public:
int removeElement(int A[], int n, int elem) {
int i=0;//i是最前面的指针
int k=0;//k存放最新的无重复的元素
bool flag=true;
if(n==0)return 0;
while(i<n)
{
if(A[i]==elem){
while(A[i]==elem&&i<n)
{++i;}
while(A[i]!=elem&&i<n)
{
A[k]=A[i];
++k;++i;
}

}
else {++i;++k;flag=false;}
}

return k;

}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: