#include <iostream>
#include <vector>
using namespace std;
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
// If the array is empty
if (nums.size() == 0)
return 0;
int index = 1; // position for next unique element
for (int i = 1; i < nums.size(); i++) {
if (nums[i] != nums[index - 1]) {
nums[index] = nums[i];
index++;
}
}
return index; // number of unique elements
}
};
int main() {
Solution sol;
vector<int> nums = {1, 1, 2, 2, 3, 4, 4};
int k = sol.removeDuplicates(nums);
cout << "Number of unique elements: " << k << endl;
cout << "Array after removing duplicates: ";
for (int i = 0; i < k; i++) {
cout << nums[i] << " ";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgU29sdXRpb24gewpwdWJsaWM6CiAgICBpbnQgcmVtb3ZlRHVwbGljYXRlcyh2ZWN0b3I8aW50PiYgbnVtcykgewoKICAgICAgICAvLyBJZiB0aGUgYXJyYXkgaXMgZW1wdHkKICAgICAgICBpZiAobnVtcy5zaXplKCkgPT0gMCkKICAgICAgICAgICAgcmV0dXJuIDA7CgogICAgICAgIGludCBpbmRleCA9IDE7IC8vIHBvc2l0aW9uIGZvciBuZXh0IHVuaXF1ZSBlbGVtZW50CgogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbnVtcy5zaXplKCk7IGkrKykgewogICAgICAgICAgICBpZiAobnVtc1tpXSAhPSBudW1zW2luZGV4IC0gMV0pIHsKICAgICAgICAgICAgICAgIG51bXNbaW5kZXhdID0gbnVtc1tpXTsKICAgICAgICAgICAgICAgIGluZGV4Kys7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiBpbmRleDsgLy8gbnVtYmVyIG9mIHVuaXF1ZSBlbGVtZW50cwogICAgfQp9OwoKaW50IG1haW4oKSB7CiAgICBTb2x1dGlvbiBzb2w7CgogICAgdmVjdG9yPGludD4gbnVtcyA9IHsxLCAxLCAyLCAyLCAzLCA0LCA0fTsKCiAgICBpbnQgayA9IHNvbC5yZW1vdmVEdXBsaWNhdGVzKG51bXMpOwoKICAgIGNvdXQgPDwgIk51bWJlciBvZiB1bmlxdWUgZWxlbWVudHM6ICIgPDwgayA8PCBlbmRsOwogICAgY291dCA8PCAiQXJyYXkgYWZ0ZXIgcmVtb3ZpbmcgZHVwbGljYXRlczogIjsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IGs7IGkrKykgewogICAgICAgIGNvdXQgPDwgbnVtc1tpXSA8PCAiICI7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=