0
点赞
收藏
分享

微信扫一扫

leetcode算法26.删除有序数组中的重复项

新鲜小饼干 2022-02-14 阅读 57

文章目录

一、leetcode算法

1、删除有序数组中的重复项

1.1、题目

由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。

将最终结果插入 nums 的前 k 个位置后返回 k 。

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

1.2、思路

1.3、答案

在这里插入图片描述

class Solution {
    public int removeDuplicates(int[] nums) {
        int n = nums.length;
        //判断数组长度,如果为0,则直接返回0
        if(n ==0){
            return 0;
        }
        //定义快慢指针,快指针循环原数组的每一个数,所以快指针需要和原数组的长度做比较。慢指针则指向不重复的一个数组
        int fast = 1, slow = 1;
        while(fast < n){
            if(nums[fast] != nums[fast -1]){
                nums[slow] = nums[fast];
                slow++;
            }
            ++fast;
        }
        return slow;
    }
}
举报

相关推荐

0 条评论