← Back to LeetCode Notes

27. Remove Element

easy · array · two-pointers · solved 2026.08.01 · 10 sec read

View on LeetCode ↗
C++
class Solution {public:    int removeElement(vector<int>& nums, int val) {        // if (nums.size() < 1)        //     return nums.size();        // if (nums.size() == 1) {        //     if (nums[0] == val) {        //         nums = {};        //         return 0;        //     } else {        //         return 1;        //     }        // }        // int i = nums.size() - 1;        // while (i >= 0 && nums[i] == val) {        //     i--;        // }        // if (i < 0) {        //     nums = {};        //     return 0;        // }        // int j = 0;        // while (j <= i) {        //     std::cout << i << " " << j << std::endl;        //     if (nums[j] == val) {        //         std::swap(nums[i], nums[j]);        //         if (i == j) {        //             j--;        //             j--;        //         }        //         i--;        //     }        //     j++;        // }        // return j;        // vector<int> e;        // for(int i = 0; i < nums.size();i++) {        //     if (nums[i] != val) {        //         e.push_back(nums[i]);        //     }        // }        // nums = e;        // return e.size();        int k = 0;        for (int i = 0; i < nums.size(); i++) {            if (nums[i] != val) {                nums[k] = nums[i];                k++;            }        }        return k;    }};

was overthinking it too much. keeping track of one pointer and going through entire array is all i needed so way too overcomplicated.