去除数组中重复的元素

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

猜你喜欢

转载自blog.csdn.net/nwpu_geeker/article/details/79598471