这个题就是个坑!英文一定要学好!题意一定要理解对。
我一开始以为自己求删除之后的长度就可以了!其实不止如此!你还要让A数组前length符合要求。
开始WA
后来一次AC
附上代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| class Solution {
public:
int removeElement(int A[], int n, int elem) {
// Note: The Solution object is instantiated only once and is reused by each test case.
int length = 0;
int *B = new int[n];
for(int i = 0;i < n;i++)
{
if(A[i] != elem)
{
B[length++] = A[i];
}
}
for(int i = 0;i < length;i++)
{
A[i] = B[i];
}
return length;
}
};
|
我是一个土人,更好的代码是:用双指针,和后面的数交换位置。