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;
    }
⚠️ **GitHub.com Fallback** ⚠️