27. Remove Element
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.