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

Java数组去重程序返回去重后长度错误 代码问题排查求助

Java数组去重长度错误问题修复

问题原因

两个问题共同导致长度输出错误:

  • remove_dupli方法仅支持有序数组去重:它的逻辑是相邻元素比较去重,若输入数组是乱序,会直接导致去重失败,返回的长度自然错误。你给出的示例输入是有序数组,所以这一步返回的length值本身是正确的3。
  • 多余调用array_sort方法统计长度:你已经通过length = remove_dupli(myArray,length)拿到了正确的去重后长度,完全不需要再调用这个方法统计长度。且array_sort的逻辑是遍历数组的完整原始长度,会把去重后数组末尾残留的旧元素算入统计,比如你示例中数组去重后前三位是[2,3,4],第四位还是原来的4,方法遍历到第四位时会误判为新元素,最终返回错误的长度4。

修复方法

直接修改main方法最后一行输出长度的代码即可:

// 把原来的array_sort调用删掉,直接输出已经得到的length变量
System.out.println("\n数组新长度为:"+length);

如果需要支持乱序数组去重,只需要在调用remove_dupli前先给数组排序:

Arrays.sort(myArray);
int length = myArray.length;
length = remove_dupli(myArray,length);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:54:05