首页 💻 数据结构,📝 算法学习

题目传送门

https://leetcode-cn.com/problems/remove-element/

题意

从给定数组中删除值等于 val 的元素,要求空间复杂度 O(1)

思路

边遍历边删除, 删除直接从当前位置往后执行 $nums_j = nums_{j+1}$ , 每当删除一个元素索引都要-1

代码

class Solution {
    public int removeElement(int[] nums, int val) {
        int len = nums.length;
        for (int i = 0; i < len;) {
            boolean f = false;
            if (nums[i] == val) {
                for (int j = i + 1; j < len; j++) {
                    nums[j - 1] = nums[j];
                }
                len--;
                f = true;
            }
            i++; if (f) i--;
        }
        return len;
    }
}



文章评论