目 录CONTENT

文章目录

3/150 26-删除有序数组中的重复项

TalentQ
2025-07-31 / 0 评论 / 0 点赞 / 3 阅读 / 0 字

1 题目

26-删除有序数组中的重复项

2 思路

双指针+快慢:慢指针维持不重复的元素,快指针遍历数组,找到不重复的元素,并赋值给慢指针i。快慢指针之间的元素都是丢弃的元素。

只需要看i-1的元素和j元素是否相等,不相等则j元素为不重复元素,赋值给i元素。

时间复杂度:O(n),空间复杂度:O(1)

3 题解

class Solution {
 public:
  int removeDuplicates(vector<int>& nums) {
    int n = nums.size();
    if (n == 0) return 0;

    int i = 1, j = 1;

    while (j < n) {
      if (nums[i-1] != nums[j]) {
        nums[i++] = nums[j];
      }
      ++j;
    }
    return i;
  }
};

0

评论区