You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LeetCode第27题removeElement代码输出异常问题求助

关于LeetCode第27题removeElement的判题逻辑问题

首先明确LeetCode第27题的核心规则:

  • 题目要求移除数组中所有等于指定值val的元素,最终返回移除后数组的新长度
  • 平台判题时,只会校验你返回的长度k对应的数组前k个元素是否符合预期,数组后面的元素是什么完全不影响判题结果

你的情况属于对判题规则不熟悉:

  • 你打印整个数组看到的01304000是数组的全部内容,但平台显示的[0,1,3]是取了你返回的长度对应的前3个元素——这是完全正常的,不是代码有问题,也不是数组复制不被支持
  • 你尝试用ArrayList、修改循环长度等操作,其实没必要纠结数组后面的内容,只要保证前k个元素是正确的,并且返回正确的k值即可

给你一个标准的双指针解法示例:

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

这个解法里,我们用k记录有效元素的位置,遍历数组时把不等于val的元素放到数组的前k位,最后返回k。平台会自动取数组前k个元素校验,后面的元素不管是什么都不会影响判题结果。

内容的提问来源于stack exchange,提问作者user21064334

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 07:34:53