LeetCode #27 移除元素--20230923

63 阅读1分钟

As the sun begins to retreat,so autumn arrives

题目描述

给你一个数组 nums 和一个值 val,你需要 [原地] 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 [原地 ]修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

题解

#26 删除有序数组中的重复项 类似

代码

public int removeElement(int[] nums, int val) {
    int length = nums.length;
    if (length == 0) {
        return 0;
    } else {
        int i = 0;
        for (int j = 0; j < length; j++) {
            if (nums[j] != val) {
                nums[i] = nums[j];
                i++;
            }
        }
        return i;
    }
}

总结

与26题相似,都是利用自身数组和两个下标进行比较和运算。