gpt4 book ai didi

java - 查找并删除数组中的 int 重复项

转载 作者:行者123 更新时间:2023-11-29 10:04:42 24 4
gpt4 key购买 nike

首先,我知道已经有很多重复的答案,但我找不到我想要的,甚至用谷歌搜索。这是在面试中被问到的问题。

所以,对于我的问题:我有下一个 int 数组:

int[] array = {1, 1, 1, 2, 2, 3, 4, 4, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9};

编辑:您可以假设数组已排序。

我只想获得不同的值,没有重复值,意思是:

array = {1, 2, 3, 4, 5, 6, 7, 8, 9, ......};

编辑:假设您不需要缩小数组,而是按排序顺序返回值,最后返回其余值。

有几个说明:

  1. 不要使用任何其他或新的数组,这意味着使用相同的数组来返回结果。
  2. 不要使用任何集合,如 Set 或 ArrayList。
  3. 让它尽可能地有用。

我曾尝试使用 Set 来做到这一点,但现在我想要一些不同的东西。还尝试用 -1 值替换重复值,但这仅在我假设我仅使用正值时才成立。

如果你发现相同的问题,告诉我,我会删除这个。

谢谢。

最佳答案

如果它们是有序的,那并不难。

/**
* removes duplicates in the provided sorted array
* @return the number of different elements (they're at the beginning)
*/
public static int shrink(int[] array) {
int w = 0;
for (int i=0; i<array.length; i++) {
if (i==0 || array[i]!=array[i-1]) {
array[w++]=array[i];
}
}
return w;
}

在那之后,只有前 w 个元素是有趣的。

关于java - 查找并删除数组中的 int 重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12530725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com