【数组】LeetCode 27. 移除元素

题目链接

27. 移除元素

思路

先设定变量idx,指向待插入位置。idx初始值为0。

然后从题目的「要求/保留逻辑」出发,来决定当遍历到任意元素 x 时,应该做何种决策:

  • 如果当前元素 x 与移除元素 val 相同,那么跳过该元素
  • 如果当前元素 x 与移除元素 val 不同,那么我们将其放到下标 idx 的位置,并让 idx 自增右移。

最终得到的 idx 即是答案。

代码

class Solution {
    public int removeElement(int[] nums, int val) {

        int idx = 0;
        for (int x : nums) {
            if (x != val) {
                nums[idx++] = x;
            }
        }
        return idx;
    }
}
posted @ 2022-12-31 13:09  Frodo1124  阅读(62)  评论(1编辑  收藏  举报