删除有序数组中的重复项(26)
26. 删除有序数组中的重复项 - 力扣(LeetCode)
解法:
class Solution {
public:
int removeDuplicates(vector<int>& nums)
{
auto first = nums.begin();
auto last = nums.end();
auto result = first;
if (first == last) {
return std::distance(first, last);
}
while (++first != last){
if (!(*result == *first) && ++result != first){
*result = std::move(*first);
}
}
++result;
//nums.erase(result, last);
return std::distance(nums.begin(), result);
}
};
总结:
计算时间复杂度O(N),空间复杂度O(1),解法代码用了是std::unqiue的代码。