您的位置:首页 > 其它

去除数组中重复的元素

2018-03-18 10:34 423 查看
题目描述:

去除一个排好序的数组中重复出现的元素。

例如:1,2,2,3,3,4,5,6,6->1,2,3,4,5,6

实现思想:

首先定义一个基准指针和一个游标指针,基准指针默认为第一个元素,游标指针默认为第二个元素。然后遍历数组,如果基准和游标所对应的数相等,则移动游标,指向下一个元素,如果不相等,则将基准指针对应的下一个元素的值赋值为游标所对应的元素,然后分别将基准指针和游标指针向后移动一位。重复比较,直到游标指针大于数组的长度。最后将基准指针之前的包括基准元素赋值给新的数组。即新的数组就是我们想要的。

直接上代码:

public class GetOffer {
public static void main(String[] args) {
int arr[] = { 1, 2, 2, 3, 3, 4, 5, 6, 6 };
int[] temp = remove(arr);
for (int i = 0; i < temp.length; i++) {
System.out.print(temp[i] + ",");
}
}

private static int[] remove(int[] arr) {
if (arr.length == 1) {
return arr;
}
int start = 0;
int end = 1;
while (end < arr.length) {
if (arr[start] == arr[end]) {
++end;
} else {
arr[start + 1] = arr[end];
++start;
++end;
}
}
int temp[] = new int[start + 1];
for (int i = 0; i < start + 1; i++) {
temp[i] = arr[i];
}
return temp;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: