leetcode-26-删除排序数组中重复项

1.题目描述:

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

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

eg:

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

函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 

你不需要考虑数组中超出新长度后面的元素。

2.解题思路:

(1)重要:就是这个数组必须是经过排序好的数组才行,不然结果不成立。

(2)

3.上代码:

var removeDuplicates = function(nums) {
    var val = nums[0];
    var idx=0;
    for(let i=1;i<nums.length;i++)
    {
        if(nums[i]!==val)
        {
            nums[++idx] = nums[i];
            
        }
        val = nums[i];
    }
    return idx+1;
};

 

猜你喜欢

转载自blog.csdn.net/qq_42099097/article/details/107508936