去除数组中重复的元素
2018-03-18 10:34
423 查看
题目描述:
去除一个排好序的数组中重复出现的元素。
例如:1,2,2,3,3,4,5,6,6->1,2,3,4,5,6
实现思想:
首先定义一个基准指针和一个游标指针,基准指针默认为第一个元素,游标指针默认为第二个元素。然后遍历数组,如果基准和游标所对应的数相等,则移动游标,指向下一个元素,如果不相等,则将基准指针对应的下一个元素的值赋值为游标所对应的元素,然后分别将基准指针和游标指针向后移动一位。重复比较,直到游标指针大于数组的长度。最后将基准指针之前的包括基准元素赋值给新的数组。即新的数组就是我们想要的。
直接上代码:
去除一个排好序的数组中重复出现的元素。
例如: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; } }
相关文章推荐
- java 去除数组中重复的元素
- 去除数组中重复的元素
- 去除列表/数组中的重复元素[转]
- iOS数组去除重复的元素的4种方法
- Perl寻找去除数组中重复元素
- 【C++】去除排序数组中重复的元素
- 算法:C#数组去除重复元素算法研究
- 去除数组中重复项,并统计重复出现次数最多的元素及重复次数
- php 去除数组中重复元素
- js去除数组中的重复元素
- 去除数组中的重复元素
- JAVA合并两个有序数组并去除重复元素。
- 利用filter()去除数组中的重复元素,利用filter()筛选出数组中的素数
- js去除数组中的重复元素的好方法
- 去除已排序数组中的重复元素
- 去除数组中重复的元素,高效率
- java去除已排序数组中的重复元素
- javascript中去除数组重复元素的实现方法【实例】
- JS Jquery去除数组重复元素
- 【程序猿技术】Js中去除数组中重复元素的4种方法