Remove Element
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.
1 public class Solution { 2 public int removeElement(int[] A, int elem) { 3 int B[] = new int[A.length]; 4 int length = 0 ; 5 6 for(int i = 0; i < A.length;i++){ 7 if(elem == A[i]){ 8 continue; 9 } 10 B[length++] = A[i]; 11 } 12 System.arraycopy(B, 0, A, 0, B.length); 13 return length; 14 15 } 16 }
discuss中的
class Solution { public: int removeElement(int A[], int n, int elem) { int index = 0; int tail = n - 1; while(index <= tail){ if(A[index] == elem){ A[index] = A[tail]; tail -= 1; }else{ index++; } } return tail + 1; } };