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 last = n-1;
int length = n;
for (int i = 0; i <= last; i++)
{
if(A[i]==elem)
{
while (A[last]==elem && i<=last)
{
--length;
--last;
}
if(i<last)
{
A[i] = A[last];
--last;
--length;
}
}
}
return length;
*/
for (int i = 0; i <n ; i++)
{
if (A[i]==elem)
{
while (A[n-1]==elem && i<=n-1)
--n;
if(i<n-1)
{
A[i] = A[n-1];
--n;
}
}
}
return n;
}
};