leetcode-移除元素

 题目

解答:

这道题让我们移除一个数组中和给定值相同的数字,并返回新的数组的长度。是一道比较容易的题,只需要一个变量用来计数,然后遍历原数组,如果当前的值和给定值不同,就把当前值覆盖计数变量的位置,并将计数变量加1。代码如下:

//和删除有序数组中的重复元素的区别是:

//删除重复元素(会保留唯一的元素),所以先执行++j,然后再赋值:nums[j]=nums[i]

//本题是删除指定元素,所以限制性覆盖操作:nums[j]=nums[i],然后再执行j++操作.

//

public static int removeElement(int[] nums, int val) {

        //j:慢指针 ,i:快指针。

        //和删除有序数组中重复元素的区别是:

        int len = nums.length;

        int j = 0;

        for (int i = 0; i < len; i++) {

            if (nums[i] != val) {

                nums[j++] = nums[i];//

            }

        }


        /*

        int newlen = j;

        for (int i = 0; i < newlen; i++) {

            System.out.println(nums[i]);

        }

        */

        return j;

    }