美文网首页
LeetCode 数组--删除重复项

LeetCode 数组--删除重复项

作者: 吃块西瓜写代码 | 来源:发表于2019-08-28 20:41 被阅读0次

从今天起开始刷leetcode.

第一题

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

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

题目不难,但是很久没有写java了太生疏了。。。这题准备三个指针(可不可以只要两个指针?

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

   }
}

使用两个指针的情况下要注意到J是从0开始的,所以在最后要把J+1;

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

            }
        }
        return j+1;

   }
}

相关文章

网友评论

      本文标题:LeetCode 数组--删除重复项

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