关于删除有序数组中重复项的解法探讨

题目:来自leetcode第26题,删除有序数组中的重复项。

链接如下

 力扣icon-default.png?t=L892https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/

关于删除有序数组中重复项的解法探讨_第1张图片

 

 如果用暴力解法,思路是将扫描一遍整个数组,发现两个元素相等时,把前面的元素赋值到一个新数组中,这样就剔去了数组中的重复元素。

但是本题要求不使用额外的数组空间,必须原地修改数组,所以考虑扫描数组时把数组前面的值给覆盖掉。代码如下:

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

你可能感兴趣的:(笔记,leetcode,算法)