【双指针】27.移除元素

【双指针】27.移除元素

力扣代码

题目描述

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。

方法:双指针

思路

设置两个指针:
指针right遍历查询数组内容
指针left复制right所查询到的符合条件的内容

代码:

java.

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

    }
}

总结:

在双指针中,只有一个指针是主动循环(本次设定的是right),另一个指针是在right指针满足条件的情况下才带动他改变位置。

猜你喜欢

转载自blog.csdn.net/mmffn/article/details/121304161