Erase Duplicate in an Unsorted Array
题目:
从未排序的array里面把重复的删掉。
解题思路:
这道题可以有两种方法:1.首先将array排序,然后用双指针来操作;2.也可以用一个set来存出现过的元素。
代码:
public void erase(int[] input){ if(input == null || input.length == 0){ return; } Arrays.sort(input); int slow = 0; int fast = 0; int len = input.length; while(fast <= len - 1){ while(fast <= len - 1 && input[fast] == input[slow]){ fast++; } if(fast <= len - 1){ input[++slow] = input[fast]; fast++; } } } public static void main(String[] args){ int[] input = {1, 1, 2, 3, 3, 4, 4, 4}; EraseDuplicateinanUnsortedArray eraseDuplicateinanUnsortedArray = new EraseDuplicateinanUnsortedArray(); eraseDuplicateinanUnsortedArray.erase(input); System.out.println(Arrays.toString(input)); }

Comments
Post a Comment