题目描述:
去除一个排好序的数组中重复出现的元素。
例如: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;
}
}