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.


思路:此题和26题一脉相承,算法上不难,详细如代码所看到的:

public class Solution {
    public int removeElement(int[] nums, int val) {
        int len = nums.length;
        int tempLen = len;
        int step = 0;//每个元素须要向前转移的距离
        for(int i = 0; i < len; i++){
            if(nums[i] == val){
                step++;//若相等步长+1
                tempLen--;//每个相等的元素长度降低1
            }else{
                nums[i-step] = nums[i];//元素前移n个步长
            }
        }
        return tempLen;
    }
}