LC26.RemoveDuplicatesfromSortedArray


题目

原地删除严格升序数组中的重复项,返回新数组的长度,元素的相对顺序应该保持一致

题解

#include <vector>
#include <algorithm>
class Solution
{
public:
	int removeDuplicates(std::vector<int>& nums)
	{
		if (nums.empty()) return 0;
		int slow = 0;
		for (int fast = 0; fast < nums.size(); ++fast)
			if (nums[fast] != nums[slow]) nums[++slow] = nums[fast];

		return slow + 1;
	}
};

//erase-unique
class Solution_
{
public:
	int removeDuplicates(std::vector<int>& nums)
	{
		nums.erase(std::unique(nums.begin(), nums.end()), nums.end());

		return nums.size();
	}
};