leetcode_026 Remove Duplicates from Sorted Array

题目分析:

  • 给定一个有序序列,要求去除序列中的重复元素,得到一个序列,序列中每个元素只出现一次。要求禁止使用额外数组空间,只能使用静态空间。

解题思路:

  • 一遍遍历实现

    使用双指针实现,一个指向当前遍历元素的位置,一个指向不重复元素应该存放的位置。

    进行一遍遍历指针即可实现。

  • 实现程序

    int removeDuplicates(int* nums, int numsSize) 
    {
        if (numsSize == 0)
            return 0;
        int num = 0;                         // 记录无重复序列的数目
        for (int i = 1; i < numsSize; i++)   // 遍历搜描
        {
            if (nums[num] != nums[i])        // 不重复,则将次元素放在无重复序列的后面
            {
                nums[++num] = nums[i];       
            }
        }
        return num + 1;                      // 返回最终序列长度
    }
    

你可能感兴趣的:(LeetCode)