题目描述
解题思路
-
对于这种去重的题目,可以把所有元素都放到一个Set集合中去,然后获取这个Set集合的长度,就已经能满足题意,但是这样开辟多余的不必要的空间,效率不高。
-
对于数组,我们依然可以像链表一样采用快慢指针,快指针先走,快指针到达的地方元素如果和慢指针不同,则慢指针向前移动一步,如果相同,快指针继续走,最终获得慢指针的位置+1则可获得删除重复数据以后数组的长度。
解题代码
/**
* @description:
* @author: lilang
* @version:
* @modified By:1170370113@qq.com
*/
public class ArraySolution {
public int removeDuplicates(int[] nums) {
int fast = 0,slow =0;
while (fast<nums.length){
if (nums[fast] != nums[slow]){
slow++;
nums[slow] = nums[fast];
}
fast++;
}
return slow++;
}
}