leetcode-----26. 删除排序数组中的重复项
算法
时间复杂度:\(O(n)\)
1、快慢指针,初始两个指针指向第一个数字;
2、遍历数组,若慢指针对应数字不等于快指针,则慢指针加1,并将快指针数字赋给慢指针;
3、无论是否相等,快指针加1。
代码
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int n = nums.size();
if (!n) return 0;
if (n == 1) return 1;
int i = 0, j = 0;
while (j < n) {
if (nums[i] != nums[j]) {
i++;
nums[i] = nums[j];
}
j++;
}
return i + 1;
}
};