27. 移除元素

image.png
public int removeElement(int[] nums, int val) {
        int slow = 0;
        for (int fast = 0; fast < nums.length; fast++) {
            if (nums[fast] != val) {
                nums[slow] = nums[fast];
                slow++;
            }
        }
        return slow;
    }
  • 思路
    双指针解法, 一开始让slow和fast都指向数组索引0
    开始循环遍历, 判断 nums[fast] 指向的数值 != 要删除的元素, 则让nums[fast]的值 覆盖 nums[slow]的值, 两个指针同时向前移动, 当nums[fast]的值 = target时, 让fast跳过, 不给slow赋值,这样相当于跳过了要删除的target, 当fast遍历结束试, nums中剩下的数值就都是过滤掉target的数组, slow的大小就是移除元素后的数组大小.
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容