动手刷LeetCode--删除数组中的重复项

删除数组中的重复项

解题思路

双指针法:不是真的定义两个变量,是借用思想;第一个指针指向一个元素;另一个指针指向另一个元素;

知识点

  1. 数组元素的调用;
  2. vector 库函数的调用:方法和属性;

解法一:

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        
        if(nums.size()==0)    return 0;

        int i=0;  //i做指针,记录需要替换元素的位置 
        for(int k=1;k<nums.size();k++)
        {
            if(nums[k]!=nums[i])
            nums[++i]=nums[k];
        }

        return i+1;
    }
};

解法二:本质相同

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        if(nums.size()==0) return 0;
        int i=0;
        for(int j=1;j<nums.size();j++)
        {
            if(nums[j]!=nums[i])
            {
                i++;
                nums[i]=nums[j];
            }
        }
        return i+1;
    }
};

小结

除了知识点总结之外还有解法思想总结

发布了26 篇原创文章 · 获赞 2 · 访问量 778

猜你喜欢

转载自blog.csdn.net/li_kin/article/details/104619279