消除数组中的重复元素,对于重复元素只保留一个

/**
* @param nums 输入需要去重的数组
* @return 去重后数组的长度
*/
public static int removeDuplicate(int[] nums) {
if (nums.length == 0) {
return 0;
}
Arrays.sort(nums);
int slow = 1;
for (int fast = 1; fast < nums.length; fast++) {
if (nums[fast] != nums[fast - 1]) {
nums[slow] = nums[fast];
slow++;
}
}
return slow;
}

例如对于数组

int[] arr = {8,5,4,3,5,4,1};
方法执行后,arr变成[1,3,4,5,8,5,8],方法返回值为5,意味着去重后数组长度是5,即前5个元素是不重复的

 

posted @ 2018-11-16 22:58  MarkLeeBYR  阅读(1302)  评论(0编辑  收藏  举报