Leetcode27. 移除元素

发布于 2024-07-28  371 次阅读


最初考虑到了双指针法:

    public int removeElement(int[] nums, int val) {
        int left = 0;
        int right = 0;
        while (right < nums.length) {
            if (nums[right] != val) {
                nums[left] = nums[right];
                left++;
                right++;
            } else {
                right++;
            }
        }
        return left;
    }

查看题解,可以优化双指针,减少遍历

    public int removeElement(int[] nums, int val) {
        int left = 0;
        int right = nums.length - 1;
        while (left <= right){
            if(nums[left] == val){
                nums[left] = nums[right];
                right--;
            }
            else {
                left++;
            }
        }
        return left;
    }