26. 删除排序数组中的重复项

原创
2020/12/28 10:53
阅读数 91

题目描述

解题思路

  1. 对于这种去重的题目,可以把所有元素都放到一个Set集合中去,然后获取这个Set集合的长度,就已经能满足题意,但是这样开辟多余的不必要的空间,效率不高。

  2. 对于数组,我们依然可以像链表一样采用快慢指针,快指针先走,快指针到达的地方元素如果和慢指针不同,则慢指针向前移动一步,如果相同,快指针继续走,最终获得慢指针的位置+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++;
    }
}
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部