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();
}
};