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.



从头开始遍历,如果碰到一个指定元素,就和末尾的一个非指定元素的位置交换。


这种类型的题目 没太大的难度 尽量写得简洁并且bug free

各种循环的终止条件判断陷阱很多



public class Solution {
    public int removeElement(int[] A, int elem) {
        int span = 1;
        for(int i=0;i<=A.length-span;i++){
            if(A[i]==elem){
                while(A[A.length-span]==elem&&A.length-span>i){
                    span++;
                }
                int temp = A[A.length-span];
                A[A.length-span]=A[i];
                A[i] = temp;
                span++;
            }
        }
        return A.length-span+1;
    }
}