Ofi*_* A. 1 java arrays duplicate-removal
首先,我知道已经有很多重复的答案,但我找不到我想要的东西,甚至在谷歌搜索过.这是一个在采访中提出的问题.
所以,对于我的问题:我有下一个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, ......};
Run Code Online (Sandbox Code Playgroud)
编辑: 假设您不需要缩小数组,但以排序顺序返回值,最后返回其余值.
有几个说明:
我试图用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;
}
Run Code Online (Sandbox Code Playgroud)
在那之后,只有第一个w元素很有趣.
| 归档时间: |
|
| 查看次数: |
2261 次 |
| 最近记录: |