26. Remove Duplicates from Sorted Array - cocoder39/coco39_LC GitHub Wiki
26. Remove Duplicates from Sorted Array
conditions: already sorted, only given O(1) memory
int removeDuplicates(vector<int>& nums) {
int k = 0;
for (int i = 0; i < nums.size(); i++) {
if (i == 0 || nums[i] != nums[i - 1]) {
nums[k++] = nums[i];
}
}
return k;
}
follow up: what if not sorted, given O(n) memory?
take O(n) time and O(n) memory using hash
int removeDuplicates(vector<int>& nums) {
unordered_set<int> st;
int cnt = 0;
for (int i = 0; i < nums.size(); i++) {
auto it = st.find(nums[i]);
if (it == st.end()) {
nums[cnt++] = nums[i];
st.insert(nums[i]);
}
}
return cnt;
}