美文网首页
在已排序数组中移除重复的数字

在已排序数组中移除重复的数字

作者: SteveGuRen | 来源:发表于2017-01-19 09:54 被阅读29次

问题

存在一已经排序过的数组,里面全是数字,但是有部分数字重复了,现要求去除数组中重复的数字,并返回修改后数组的长度

例如:
给一数组nums = [1,1,2],
修改过后的数组为[1,2],
返回的长度是2

解决方法

方法一

由于数组已经是排过序的,我们可以设置i, j两个下标,i始终保持 i<j,只要nums[i]=nums[j],我们就可以增加j,来跳过重复的值,如果nums[i]!=nums[j],那么说明nums[i+1]可以被nums[j]替换掉,从而下标为前i+1的数组数据都是有序不重复的,当j>=nums.length的时候,循环结束。JAVA代码如下:

 public int removeDuplicates(int[] nums) {
    if (nums.length == 0) return 0;
    int i = 0;
    for (int j = 1; j < nums.length; j++) {
    if (nums[j] != nums[i]) {
        i++;
        nums[i] = nums[j];
    }
    }
    return i + 1;
}

我们可以轻易得到时间复杂度为O(n),空间复杂度为O(1)

相关文章

  • 在已排序数组中移除重复的数字

    问题 存在一已经排序过的数组,里面全是数字,但是有部分数字重复了,现要求去除数组中重复的数字,并返回修改后数组的长...

  • Remove Duplicates from Sorted Ar

    有序数组中移除重复数字

  • 3.数组中重复的数字

    找出数组中任意一个重复的数字! 思路1:把数组排序,从排序后的数组中找出重复的数字。但排序一个长度为n的数组需要O...

  • 顺序表

    1.删除排序数组中的重复数字 给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的...

  • 从排序数组中删除重复项

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

  • 2018年8月 leetcode刷题(初级算法数组)

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

  • leetcode 探索-初级算法 数组 从排序数组中删除重复项

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

  • leetcode算法-删除排序数组中的重复项

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

  • 从排序数组中删除重复项

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

  • 算法:从排序数组中删除重复项

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

网友评论

      本文标题:在已排序数组中移除重复的数字

      本文链接:https://www.haomeiwen.com/subject/vaxibttx.html