#include <bits/stdc++.h>
using namespace std;
int removeDuplicates(vector<int>& nums) {
if(nums.empty()){
return 0;
}
int j=0; // slow pointer
for (int i = 1; i < nums.size(); i++) {
if (nums[i] != nums[j]) {
j++;
nums[j] = nums[i];
}
}
return j + 1;
}
int main(){
vector<int>nums = {1,1,2,2,3};
int len = removeDuplicates(nums);
for (int i = 0; i < len; i++){
cout<< nums[i]<<" " ;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgcmVtb3ZlRHVwbGljYXRlcyh2ZWN0b3I8aW50PiYgbnVtcykgewogICAgaWYobnVtcy5lbXB0eSgpKXsKICAgIAlyZXR1cm4gMDsKICAgIH0KICAgIGludCBqPTA7IC8vIHNsb3cgcG9pbnRlcgogICAgCiAgICBmb3IgKGludCBpID0gMTsgaSA8IG51bXMuc2l6ZSgpOyBpKyspIHsKICAgICAgICBpZiAobnVtc1tpXSAhPSBudW1zW2pdKSB7CiAgICAgICAgICAgIGorKzsKICAgICAgICAgICAgbnVtc1tqXSA9IG51bXNbaV07CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGogKyAxOwp9CmludCBtYWluKCl7Cgl2ZWN0b3I8aW50Pm51bXMgPSB7MSwxLDIsMiwzfTsKCQoJaW50IGxlbiA9IHJlbW92ZUR1cGxpY2F0ZXMobnVtcyk7Cglmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKXsKCQljb3V0PDwgbnVtc1tpXTw8IiAiIDsKCX0KCQoJCn0=