消除数组中的重复元素,对于重复元素只保留一个
/**
* @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个元素是不重复的