删除有序数组中的重复项①
使用快慢指针来解决
首先根据题目条件可以知道,数组是有序的,且要原地删除重复出现一次的元素 既然数组是有序的,那么我们不难想到这样判断元素是否重复
#include <bits/stdc++.h>using namespace std;int main(){vector<int> nums = {0,0,1,1,1,2,2,3,3,4};int ans = 0;int n = nums.size();int i = 0, j = 1;while(j < n){if(nums[j] != nums[i]){nums[i+1] = nums[j];i++;}j++;}//for(int k = 0;k < i;k++){cout << nums[k] << " ";}system("pause");return 0;}
删除有序数组中重复项②
力扣
相比于①
class Solution {public:int removeDuplicates(vector<int>& nums) {int n = nums.size();int l = 2,r = 2;if(n <=2){return n;}while(r < n){if(nums[l-2]!=nums[r]){nums[l] = nums[r];l++;}r++;}return l;}};





