从排序数组中删除重复项

描述


给定一个排序数组,就地删除重复项,以便每个元素只出现一次并返回新的长度。


不要为另一个数组分配额外的空间,您必须使用常量内存就地执行此操作。


例如,给定输入数组 A = [1,1,2]


您的函数应返回 length = 2,并且 A 现在是 [1,2]。

分析

代码

  1. // Remove Duplicates from Sorted Array
  2. // 时间复杂度O(n),空间复杂度O(1)
  3. class Solution {
  4. public:
  5. int removeDuplicates(vector<int>& nums) {
  6. if (nums.empty()) return 0;
  7. int index = 1;
  8. for (int i = 1; i < nums.size(); i++) {
  9. if (nums[i] != nums[index - 1])
  10. nums[index++] = nums[i];
  11. }
  12. return index;
  13. }
  14. };

相关题目


原文: https://soulmachine.gitbooks.io/algorithm-essentials/content/cpp/linear-list/array/remove-duplicates-from-sorted-array.html