public class Solution {
public int removeElement(int[] A, int elem) {
int length = A.length;
if(length == 0){
return 0;
}else{
int[] B = new int[A.length];
int j = 0;
for(int i = 0 ; i < length ; i++){
if(A[i] == elem){
continue;
}else{
B[j] = A[i];
j++;
}
}
A = B;
return j;
}
}
}
最初的方法,提交出错,后来参考discuss,
public class Solution {
public int removeElement(int[] A, int elem) {
int removeCount = 0;
for(int i = 0 ; i < A.length ; i++){
if(A[i] == elem){
//A[i] = A[i + 1]; 这个是自己的思路,一时之间想不出如何把要删除的元素删除掉
removeCount++;
}else{//
A[i - removeCount] = A[i];//这个是参考discuss里面别人的方法,所以这道题目是抄袭才通过的,
}//不过这个办法确实巧妙,看了两次了
}
return A.length - removeCount;
}
}