返回轨道
算法 · 2026-05-14 · 20 阅读

P217 移除数组中指定数字

算法 20 阅读

信号摘要

难度:Easy · 时长:05:39 · leetcode 27 · lintcode 172

P217 移除数组中指定数字

未对外公开播放权限
点击查看说明

描述

这个题目说的是,给你一个整数数组和一个数字,你要就地(in place)移除数组中等于给定数字的所有元素。然后返回移除指定数字后的子数组长度。

比如说,给你的整数数组是:

[1, 4, 2, 0, 2, 8]

你要移除的数字是 2。

在这个数组中就地移除数字 2 后,得到:

[1, 4, 0, 8, _, _]

因此,你要返回这个子数组的长度 4。

原数组的长度是 6,所以子数组 1, 4, 0, 8 后面实际上还有两个位置。但这两个位置上放什么数字都无所谓。因为根据返回的长度 4,就可以确定目标子数组的边界。

相关视频:移除有序数组中的重复元素

代码

public class AlgoCasts {

  // Time: O(n), Space: O(1)
  public int removeElement(int[] nums, int val) {
    if (nums == null || nums.length == 0) return 0;
    int p = 0;
    for (int q = 0; q < nums.length; ++q)
      if (nums[q] != val)
        nums[p++] = nums[q];
    return p;
  }

}

📡 通讯频道