给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度。
元素的顺序可以改变,并且对新的数组不会有影响。
样例
给出一个数组 [0,4,4,0,0,2,4,4],和值 4
返回 4 并且4个元素的新数组为[0,0,0,2]
public class Solution {
/**
*@param A: A list of integers
*@param elem: An integer
*@return: The new length after remove
*/
public int removeElement(int[] A, int elem) {
// write your code here
int count=0;
if(A.length==0||A==null){
return 0;
}
for(int i=0;i<A.length;i++){
if(A[i]==elem){
count++;
}
}
int start=0;
int end=A.length-1;
while(start<end){
while(start<end&&A[start]!=elem){
start++;
}
while(start<end&&A[end]==elem){
end--;
}
if(start<end){
int temp=A[start];
A[start]=A[end];
A[end]=temp;
}
}
return A.length-count;
}
}