资讯专栏INFORMATION COLUMN

LeetCode-数组-删除有序数组重复元素

mmy123456 / 787人阅读

摘要:题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。给定数组函数应该返回新的长度并且原数组的前两个元素被修改为。

题目描述

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

给定数组 nums = [1,1,2], 

函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。
解题思路
采用双指针方式处理。

初始指针 i, j 位置为 0

指针 j 先向右移动

比较指针 i,j 元素是否相同,若指针i,j元素相同则指针 j 继续向右移动;反之将指针 j 元素复制到指针 i + 1 处元素

当指针 j 移动到数组末尾时则停止

其流程如下图所示:

实现
public static int solution (int[] nums) {
    int i = 0, j = 0;

    while (true) {
        // 指针 j 向右移动
        j++;

        // 指针 j 移动到数组末尾则退出,说明数组元素都判断了去重
        if (j >= nums.length) {
            break;
        }

        if (nums[j] == nums[i]) {
            // 指针 i, j 元素相同,说明重复元素;
            // 指针 j 继续向右移动
            continue;
        } else {
            // 指针 i, j 元素不相同;则将指针 j 元素复制到 指针 i 后一位,这样就保证指针 i 后元素不重复
            nums[i + 1] = nums[j];
            // 指针 i 向右移动,继续处理
            i++;
        }
    }

    return i + 1;
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/73476.html

相关文章

  • 70道前端LeetCode题目集合及视频讲解(持续更新中...)

    前端LeetCode刷题 下面是已刷的题目的目录。GitHub:https://github.com/cunzaizhuy...每日打卡更新中,欢迎关注。 数组类 26 删除排序数组中的重复项 27 移除元素 35 搜索插入位置 66 加1 80 medium 删除排序数组中的重复项2 88 合并两个有序数组 167 两数之和II - 输入有序数组 118 杨辉三角 169 easy 求众数 1...

    mayaohua 评论0 收藏0
  • Leetcode】80. 删除排序数组中的重复项 II

    摘要:题目给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。示例给定函数应返回新长度并且原数组的前五个元素被修改为。也就是说,不对实参做任何拷贝在函数里修改输入数组对于调用者是可见的。 题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在...

    dinfer 评论0 收藏0
  • LeetCode-Remove Element-从排序数组删除重复

    摘要:描述给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次并返回新的长度。最后慢指针指向的元素及前面所有元素都是不重复的。 描述: 给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次,并返回新的长度。不要另外定义一个数组,您必须通过用 O(1) 额外内存原地修改输入的数组来做到这一点。示例: 给定数组: nums = [1,1,2], 你的函数应该返回新...

    dayday_up 评论0 收藏0
  • 前端 | 每天一个 LeetCode

    摘要:在线网站地址我的微信公众号完整题目列表从年月日起,每天更新一题,顺序从易到难,目前已更新个题。这是项目地址欢迎一起交流学习。 这篇文章记录我练习的 LeetCode 题目,语言 JavaScript。 在线网站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公众号: showImg(htt...

    张汉庆 评论0 收藏0
  • LeetCode 攻略 - 2019 年 7 月下半月汇总(100 题攻略)

    摘要:月下半旬攻略道题,目前已攻略题。目前简单难度攻略已经到题,所以后面会调整自己,在刷算法与数据结构的同时,攻略中等难度的题目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道题,目前已攻略 100 题。 一 目录 不折腾的前端,和咸鱼有什么区别...

    tain335 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<