void RemoveDups(){
int f=0;
for(int i=1;i<nelems;i++){
if(arr[f]==arr[i]){
for(int k=i;k<nelems;k++)
{
arr[k]=arr[k+1];
}
nelems--;
}
if(i==(nelems+1)){
f++;
i=f+1; //increment again
}
}
}
这是我编写的用于从数组中删除重复元素的逻辑,但这根本不起作用?我应该做哪些更改才能使其起作用?或者考虑到时间复杂性,你们有更好的逻辑来做同样的事情。我不想使用内置方法来实现这一点。
最佳答案
int end = input.length;
for (int i = 0; i < end; i++) {
for (int j = i + 1; j < end; j++) {
if (input[i] == input[j]) {
int shiftLeft = j;
for (int k = j + 1; k < end; k++, shiftLeft++) {
input[shiftLeft] = input[k];
}
end--;
j--;
}
}
}
关于java - 数组中没有重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26311927/