【Leetcode】Remove Duplicates from Sorted Array

题目:从已排序的数组中去除重复数字,非重复数字放在数组前部,返回非重复数字的长度。数组剩余的部分放什么不管。

思路:见代码中。主要是设置两个下标,一个是标记已去重的部分,一个标记待处理的位置。

注意:去重,很自然想到要先排序一下,发现已经是sorted的了

代码:

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        if(nums.size()==0) return 0;//下面直接是从下标1开始比较的,所以需要单独判断数组为空的情况
        
        int lenxb=0;//长度的下标,即长度=lenxb+1
        for(int i=1;i<nums.size();++i)
        {
            if(nums[i]!=nums[lenxb]) nums[++lenxb]=nums[i];
        }
        //思想:相当于设置两个下标,lenxb指向已处理的数组边界,i指向数组待处理的位置
        
        return lenxb+1;
    }
};
原文地址:https://www.cnblogs.com/buxizhizhou/p/4684452.html