欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

26. Remove Duplicates from Sorted Array

程序员文章站 2024-02-17 12:25:04
...

题目分析

原题链接,登陆 LeetCode 后可用
给定一个有序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。并且不要使用额外的数组空间,空间复杂度为 O(1)。这里的删除并非严格意义上的删除,比如一个数组为 A,其值为 [1,1,2],程序执行结束后,返回的长度应该为2,并且数组 A 的前两个元素应该为1和2。

代码

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